Про ErrorException

PHP по-умолчанию не ловит ошибки в блоке try/catch.

Т.е. такой код вывалит ошибку PHP Error[8]: Undefined offset: 1, хоть и ожидается совершенно иное поведение.

try {
    $a = [];
    echo $a[1];
} catch (Exception $e) {}

Чтобы все работало как ожидается, нужно установить отдельный обработчик ошибок, как указано в документации к базовому исключению ErrorException.

function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *