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
Introdução
Uma Exception de erro.
Sinopse da classe
ErrorException
class ErrorException
extends
Exception
{
/* Properties */
/* Methods */
public __construct
([ string $message
[, int $code
[, int $severity
[, string $filename
[, int $lineno
]]]]] )
/* Inherited methods */
}Propriedades
- severity
-
O nível da exceção
Exemplos
Exemplo #1 Tornando todas mensagens de erro em ErrorException.
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
/* Trigger exception */
strpos();
?>
O exemplo acima irá imprimir algo similar a:
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
Índice
- ErrorException::__construct — Construct the exception
- ErrorException::getSeverity — Obtém o nível da exceção
ErrorException
troelskn at gmail dot com
29-Jul-2008 01:08
29-Jul-2008 01:08
