Poznaj funkcje oraz mechanizmy obsługi sytuacji wyjątkowych dostępne w języku PHP.
Podczas tworzenia skryptu trudno jest przewidzieć wszystkie sytuacje wyjątkowe, które mogą wystąpić w trakcie jego działania. Problemy z bazą danych, błędy na dysku twardym, niepoprawne dane wpisane przez użytkownika lub zbyt gorliwy nowy administrator w firmie, który aż nadto przesadnie konfiguruje opcje bezpieczeństwa serwera, tak że skrypt nie ma dostępu do wymaganych danych. Dzięki możliwościom oferowanym przez PHP Twoje skrypty mogą funkcjonować płynnie, ewentualne błędy, które mogą się pojawić w trakcie ich pracy, zostaną poprawnie obsłużone, a użytkownik strony poinformowany o tym zrozumiałym dla siebie komunikatem. Poznaj funkcje oraz mechanizmy obsługi sytuacji wyjątkowych dostępne w języku PHP.
W ebooku "Obsługa błędów w PHP" znajdziesz następujące zagadnienia:
- Model obsługi i typy błędów w PHP
- Domyślny mechanizm obsługi błędów
- Funkcja error_reporting() i prosty debuger
- Dla leniwych pseudofunkcja die() oraz operator @
- Funkcja set_error_handler(), czyli jak stworzyć własny mechanizm obsługi błędów.
- Kiedy warto samemu spowodować błąd?
- Podstawowe metody wykorzystania mechanizmu obsługi wyjątków: klasa Exception, polecenie throw oraz blok try-catch
- Przydatne metody klasy Exception
- Rozpoznawanie typów błędów
- Zmiana oraz rozszerzenie funkcjonalności klasy Exception poprzez dziedziczenie
- Obsługa "niechcianych" wyjątków
- Rozwiązania alternatywne – PEAR_Error
Model obsługi i typy błędów w PHP
W PHP rozróżnić można dwa rodzaje błędów: tradycyjne błędy proceduralne, które w PHP obsługiwane są od samego początku, oraz system wyjątków oparty na nowym modelu obiektowym, począwszy od PHP5. Znajomość wykorzystania mechanizmów dostępnych w PHP do obsługi obydwu rodzajów błędów z pewnością pomoże Ci stworzyć aplikację odporną na znaczną większość sytuacji wyjątkowych.
Domyślny mechanizm obsługi błędów
Ponieważ trudno jest przewidzieć wystąpienie wszystkich możliwych błędów, twórcy PHP zadbali o to, aby domyślny mechanizm obsługi błędów był na tyle elastyczny, by programiści mogli mieć pewien ograniczony wpływ na jego konfigurację. Domyślny mechanizm obsługi błędów PHP wykorzystuje kilkanaście opcji umieszczonych w pliku php.ini. Wszystkie z nich szczegółowo opisujemy.
Stwórz własny mechanizm obsługi błędów
Aby móc reagować na dowolny typ mogących wystąpić błędów, najlepiej jest zaprojektować i stworzyć własny uniwersalny mechanizm ich obsługi. Dowiedz się jak taki mechanizm zdefiniować we własnej aplikacji oraz na co powinieneś zwrócić szczególną uwagę, aby Twoja aplikacja działała stabilnie.
Podstawowe metody wykorzystania mechanizmu obsługi wyjątków
Twórcy PHP chcieli zaimplementować mechanizm obsługi wyjątków bazując na podobnych mechanizmach istniejących chociażby w C++ czy Javie. Aby jak najdokładniej odwzorować ich działanie, potrzebowali środowiska obiektowego, które w pełni pojawiło się dopiero w PHP 5. Skorzystaj z udogodnień, które oferuje Ci mechanizm obsługi wyjątków zaimplementowany w PHP 5, a są to przede wszystkim: centralizacja, czyli tworzenie wyspecjalizowanych punktów obsługi różnych typów błędów, większa elastyczność programowania ich obsługi dzięki zastosowaniu dziedziczenia, możliwość otrzymywania szczegółowych informacji o typach błędów oraz kontekście ich wystąpienia.
Zmiana oraz rozszerzenie funkcjonalności klasy Exception poprzez dziedziczenie
Aby rozszerzyć możliwości oraz funkcjonalność dostępnych mechanizmów obsługi sytuacji wyjątkowych, wykorzystaj kwintesencję programowania obiektowego – dziedziczenie. Dowiedz się w jaki sposób ulepszyć dotychczas wykorzystywane przez siebie klasy do obsługi błędów.
Rozwiązania alternatywne – PEAR_Error
Aby mieć pełny przegląd dostępnych metod obsługi błędów w PHP, należy wspomnieć o alternatywnych rozwiązaniach. Warto zwrócić uwagę na repozytorium PEAR oraz jego pakiet stworzony specjalnie do obsługi błędów – PEAR_Error. Obiekty PEAR_Error mogą dostarczać wielu informacji na temat przyczyn i kontekstu wystąpienia błędu. Skorzystaj z innych, sprawdzonych metod obsługi błędów w PHP.
|