PHP5 udostępnia nam bardzo wygodny sposób obsługi zdarzeń powodujących różnego rodzaju komplikacje. Pomysł został zaczerpnięty z innych języków, także jego działanie jest niemal identyczne z tym, jakie spotykany w Javie. Oczywiście mowa tutaj o Exception (z ang. Wyjątki). Dzięki nim możemy oznajmić aplikacji, że wystąpił błąd z którym dalej ona nie możne poprawnie funkcjonować. W przeciwieństwie do funkcji die() czy też exit(), które kończą wykonywanie programu, wyjątki umożliwiają nam podjęcie odpowiednich kroków mających na celu eliminację problemu. Oczywiście moglibyśmy stosować wszędzie funkcje/metody, które zwracają true lub false, w zależności od tego czy jej działanie zakończyło się sukcesem. Pomysł często stosowany, lecz przy większych systemach można bardzo szybko stracić rachubę, co powoduje błąd (gdyż mamy tylko wiedzę, o tym że działanie funkcji/metody się nie powiodło, nie znamy przyczyn). Kod staje się także dużo bardziej nie czytelny, ogromne ilości instrukcji warunkowych w znacznym stopniu wpływając negatywnie na czytelność kodu. Można także próbować korzystać z funkcji trigger_error(), która to “wytwarza” błąd. Stosuje się ją powszechnie w bibliotekach pisanych dla PHP4. Moim zdaniem jednak, to narzędzie jest bardzo nie wygodne, w dodatku nie oferuje nam możliwości obsłużenia błędu tylko nas o nim informuje.