Nello scripting server side in PHP 5, gli errori possono gestiti tramite eccezioni; questo approccio che i programmatori in Java o C++ conosceranno già molto bene, consente di separare nettamente in fase di sviluppo la gestione degli errori dalla logica dell'applicativo.
Dato che nella programmazione, gli errori sono inevitabili anche quando si assume una certa pratica nella digitazione del listato, diviene necessario creare degli accorgimenti che limitino il più possibile le perdite di tempo legate alla ricerca dei frammenti di codice errati.
Fino al PHP versione 4 non c'era molto da fare, si scriveva il codice e poi lo si testava, gli errori venivano fuori e si andava alla ricerca della riga affetta dall'errore per poi applicare la soluzione adeguata.
In PHP 5 abbiamo invece qualche strumento in più per l'analisi del nostro codice e per la razionalizzazione dei tempi di intervento a carico delle istruzioni mal digitate.
La logica che stà alla base dell'Exception Handling in PHP 5 prende il nome di try (prova), throw (lancia) and catch (cattura), per cui il controllo delle eccezioni emula in parte l'azione svolta dalle istruzioni di controllo o condizionali come if ed else.
Se per esempio salviamo il seguente codice in una pagina chiamata eccezione.php, e lo lanciamo:
throw new Exception( 'Errore!!!!!!!!', 100); ?>prevedibilmente, il risultato ottenuto sarà simile all'output riportato qui di seguito:
Fatal error: Uncaught exception 'Exception' with message 'Errore!!!!!!!!' in c:\programmi\php\www\error.php:2 Stack trace: #0 {main} thrown in c:\programmi\php\www\error.php on line 2Al lancio dello scriptino abbiamo due effetti: il primo è la notifica di un Uncaught exception (letteralmente: "eccezione non catturata"), il secondo, ben più importante ai fini dell'Exception Handling è il fatto che a seguito di questa notifica il resto delle istruzioni contenute nel codice, se presenti, non verranno eseguite.