L'azione di controllo svolta dalla logica del try, throw and catch prevede quindi due esiti possibili: o l'eccezione viene rilevata (catching con esito positivo) e quindi le istruzioni previste nel listato successivo all'errore non vengono escluse dal ciclo di esecuzione stabilito dal sorgente, oppure, l'eccezione non viene rilevata (Uncaught exception) e quindi i possibili input previsti vengono abortiti e non producono effetti (o, per meglio dire, non vengono prodotti come effetto).
Per eseguire efficacemente il catching di un'eccezzione è possibile racchiudere il codice destinato all'esecuzione all'interno di un blocco in cui è prevista la prova e il lancio del listato (try and catch block); all'interno di questo blocco di istruzioni potremo operare una distinzione efficace tra codice privo di errori e codice in grado di produrre notifiche di errore.
Allo scopo di chiarire meglio quanto appena espresso, un esempio pratico può essere di grande aiuto:
try {
print 'Stampa questo codice.';
throw new Exception( '
Contollo delle eccezioni.', 100);
print "Blocca tutto!!";
}
catch(Exception $var) {
print $var->getMessage();
}
?>
Dopo un semplice test effettuato salvando il codice appena proposto in una pagina chiamata, ad esempio, eccezione2.php riceveremo in output come risultato la stampa a video delle seguenti stringhe:
Stampa questo codice. Contollo delle eccezioni.Casa è accaduto? apparentemente non molto, ma in relatà il nostro listato ha eseguito sotto l'azione dell'eseguibile di PHP 5 tutta una serie di operazioni che, naturalmente, evidenziano nell'output solo il loro risultato finale.