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
Introduction
Une exception pour les erreurs.
Synopsis de la classe
ErrorException
class ErrorException
extends
Exception
{
/* Propriétés */
/* Méthodes */
public __construct
([ string $message
[, int $code
[, int $severity
[, string $filename
[, int $lineno
]]]]] )
/* Méthodes héritées */
}Propriétés
- severity
-
La sévérité de l'exception
Exemples
Exemple #1 Active tous les messages d'erreur dans ErrorException
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
/* Lance l'exception */
strpos();
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
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
Sommaire
- ErrorException::__construct — Construit l'exception
- ErrorException::getSeverity — Récupère la sévérité de l'exception
ErrorException
troelskn at gmail dot com
29-Jul-2008 01:08
29-Jul-2008 01:08
