Errors in PHP 7

Оновлено: 11.05.2023

У PHP 7 змінено спосіб повідомлення про більшість помилок у PHP. Замість того, щоб повідомляти про помилки за допомогою традиційного механізму повідомлення про помилки, який використовувався у PHP 5, більшість помилок тепер повідомляється шляхом генерування винятків Error.

Як і у випадку зі звичайними винятками, ці винятки Error будуть з'являтися, доки не досягнуть першого відповідного блоку перехоплення. Якщо таких блоків немає, то буде викликано будь-який обробник винятків за замовчуванням, встановлений за допомогою set_exception_handler(), а якщо такого обробника немає, то виняток буде перетворено на фатальну помилку і буде оброблено як звичайну помилку.

Оскільки ієрархія Error не успадковується від Exception, код, який використовує блоки catch (Exception $e) { ... } для обробки неперехоплених винятків у PHP 5, виявить, що ці помилки не перехоплюються цими блоками. Або блок catch (Error $e) { ... } або обробник set_exception_handler().