Я пытаюсь использовать функцию set_error_handler
для захвата require
ошибок.
В то время как мой пользовательский error_handler
используется, контекст кажется полностью выключенным, хотя след правильный.Как захватить требуемые ошибки + error_handlers
<?php
function error_handler($errno, $errstr, $errfile, $errline){
throw new Exception($errstr);
}
set_error_handler('error_handler');
try{
trigger_error("somethign",E_USER_NOTICE);
}catch(Exception $e){
echo "I got caught";
}
try{
require "something/that/does/not/exists.php";
}catch(Exception $e){
echo "I got caught";
}
Как можно видеть, когда я запустить первую ошибку, он инициирует error_handler
в свою очередь, бросает исключение. Которая попадает в первую попытку.
Во второй раз, когда я пытаюсь включить несуществующий файл, снова используется error_handler
, но исключение не обнаружено.
Что здесь происходит?
Я использую php 5.5. *
Протестировано в режиме CLI.