Błędy w PHP 7
PHP 7 zmienia sposób w jaki większość błędów jest zgłszana przez PHP. Zamiast
tradycyjnego mechanizmu raportowania używanego przez PHP 5, większość
błędów jest teraz zgłaszanych poprzez rzucanie wyjątku Error.
Tak jak normalne wyjątki, te będące typu Error
będą oczekiwać na pierwszy pasujący blok
catch.
Jeżeli nie zostanie znaleziony pasujący blok, wykona się domyślna funkcja
obsługująca wyjąki, zarejestrowana przez set_exception_handler,
a jeżeli nie będzie ona ustawiona, to wyjątek będzie przekonwertowany do błędu
krytycznego (fatal error) i obsłużony jak tradycyjny błąd.
Ponieważ hierarchia klasy Error nie dziedziczy z
klasy Exception, kod który używa bloków
catch (Exception $e) { ... } do obsługi niezłapanych
wyjątków w PHP 5, nie złapie wyjątków typu Error.
Wymagany jest blok catch (Error $e) { ... } lub handler
zarejestrowany przez set_exception_handler.
Hierarchia klasy ErrorThrowableErrorArithmeticErrorDivisionByZeroErrorAssertionErrorCompileErrorParseErrorTypeErrorArgumentCountErrorValueErrorUnhandledMatchErrorFiberErrorRequestParseBodyExceptionException...