Ошибка отлова исключения в PHP 7.0+
Столкнулся с интересной ошибкой сегодня. Есть вызов функции. Есть обертка try — catch в ней, а она не срабатывает! Гуглил. Долго думал.. Оказывается в PHP 7.0 и выше, изменилось дерево наследования ошибок на:
1 2 3 4 5 6 7 8 9 10 |
Throwable Error ArithmeticError DivisionByZeroError AssertionError CompileError ParseError TypeError ArgumentCountError Exception |
Соответственно «всех выше теперь» — Throwable, и если хочется теперь словить «глобальную» ошибку, то блок вызывать нужно:
1 2 3 4 5 |
try { } catch(\Throwable $e) { } |