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( '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:
Contollo delle eccezioni.', 100); print "Blocca tutto!!"; } catch(Exception $var) { print $var->getMessage(); } ?>
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.