не поставил ;? Класс ParseError расширяет же CompileError, а этот в свою очередь Error.
в трай кетч ты ловишь эксепшены, а не эрроры
а почему я тогда могу отловить там например ошибку связанную с тем что обращаюсь к несуществующей функции, это же fatal error
Потому что это не мешает парсингу программы Если ты забыл точку с запятой, то дальше что интерпретатору делать? Как ему в кетч попасть?
вроде можно было кастомный хэндлер настроить для ошибок, но это такая себе идея
Смею предположить что отлов ParseError будет работать при вызове eval()
Получается что try catch отлавливает и ошибки и исключения при условии что код продолжает работать?
Ну, да, звучит логично)
получается parse error в целом нельзя обработать там, есть ли еще какие-то типы ошибок которые в try catch не ловятся?
Ну разве что out of memory Но там можно вроде shutdown handler повесить
на parse то же можно повесить слушатель остановки скрипта
Обсуждают сегодня