W PHP5 ma to wiele sensu, gdy zdefiniowane są zarówno set_exception_handler()
, jak i set_error_handler()
.Co dzieje się z set_error_handler() w PHP7 teraz, gdy wszystkie błędy są wyjątkami?
Jednak w PHP7 wszystkie (większość?) Błędy są teraz wyjątkami. Więc, o co chodzi w definiowaniu obu procedur obsługi, czy nawet błędy przejdą przez program obsługi wyjątku?
Widzę, że jest notatka na temat klasy PHP7 nowej Error
w dokumencie obsługi wyjątków, ale nie ma odniesienia do faktu, że nie ma już zwykłych błędów, ale Throwable
s, w funkcji obsługi błędu.
Od PHP 7, większość błędów są zgłaszane przez rzucanie
Error
wyjątki, które zostaną złowione przez przewodnika, jak również. ZarównoError
, jak iException
implementują interfejsThrowable
. [source]
Błędy PHP nadal są problemem. ostrzeżenia i powiadomienia są nadal dostępne. – Federkun
Jest to często błędne przekonanie, że wszystkie błędy są wyjątkami w PHP 7. Tak, PHP 7 teraz rzuca więcej wyjątków niż wcześniej, ale nie wszystkie błędy zmieniły się w wyjątki. – apokryfos
W rzeczywistości można zdefiniować tylko 'set_error_handler()', ponieważ niezatłoczone wyjątki zostaną przekonwertowane na błędy krytyczne. – simon