Есть index.php, там код
ini_set('display_errors', 1);
ini_set('error_reporting', ~0);
$notFatal = E_USER_ERROR | E_RECOVERABLE_ERROR | E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE | E_STRICT | E_DEPRECATED | E_USER_DEPRECATED;
set_error_handler('errorHandler', $notFatal);
register_shutdown_function('fatalErrorHandler');
function errorHandler($errno, $errstr, $errfile, $errline)
{
throw new ErrorException($errstr);
}
function fatalErrorHandler()
{
if ($error = error_get_last() AND $error['type'] & (E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING)) {
ob_end_clean();
errorHandler($error['type'], $error['message'], $error['file'], $error['line']);
} else {
ob_end_flush();
}
}
try {
require 'some_not_existing_file.php';
} catch (ErrorException $e) {
echo $e->getMessage();
}
Результат выполнения предельно непонятный:
Если закомментить
require 'some_not_existing_file.php';
И написать
throw new ErrorException('Im work');
то все ок. Что у я упустил ?