The following snippet installs an error-handler that turns errors into exceptions. It respects error-reporting level, so that you can still use error-suppression:
<?php
function exceptions_error_handler($severity, $message, $filename, $lineno) {
if (error_reporting() == 0) {
return;
}
if (error_reporting() & $severity) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}
}
set_error_handler('exceptions_error_handler');
?>
ErrorException
Введение
Исключение в случае ошибки.
Class synopsis
ErrorException
class ErrorException
extends
Exception
{
/* Свойства */
/* Методы */
public __construct
([ string $message
[, int $code
[, int $severity
[, string $filename
[, int $lineno
]]]]] )
/* Унаследованные методы */
}Свойства
- severity
-
Важность ошибки
Примеры
Пример #1 Пример использования ErrorException
Превращаем все ошибки в ErrorException.
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
/* вызываем ошибку */
strpos();
?>
Результатом выполнения данного примера будет что-то подобное:
Fatal error: Uncaught exception 'ErrorException' with message 'Wrong parameter count for strpos()' in /home/bjori/tmp/ex.php:8 Stack trace: #0 [internal function]: exception_error_handler(2, 'Wrong parameter...', '/home/bjori/php...', 8, Array) #1 /home/bjori/php/cleandocs/test.php(8): strpos() #2 {main} thrown in /home/bjori/tmp/ex.php on line 8
Содержание
- ErrorException::__construct — Construct the exception
- ErrorException::getSeverity — Gets the exception severity
ErrorException
troelskn at gmail dot com
29-Jul-2008 12:08
29-Jul-2008 12:08
