Administrateur PHPfrance |
3131 Messages
25 sept. 2006, 00:08
C'est vrai, mais bon, j'aime bien être averti des erreurs dans le genre "Impossible d'acceder a la base de données" mais dans ce cas la, je pense que ca se passe du coté de set_exception_handler() non?
@+
Pas loin, mais c'est plutôt du côté de set_error_handler qu'il faut voir en l'occurrence. Attention par contre les E_ERROR ne sont pas pris en compte. Exemple avec ce handler :
function errorName($errno)
{
static $e_names = array(
E_ERROR => 'E_ERROR',
E_WARNING => 'E_WARNING',
E_PARSE => 'E_PARSE',
E_NOTICE => 'E_NOTICE',
E_STRICT => 'E_STRICT',
E_CORE_ERROR => 'E_CORE_ERROR',
E_CORE_WARNING => 'E_CORE_WARNING',
E_COMPILE_ERROR => 'E_COMPILE_ERROR',
E_COMPILE_WARNING => 'E_COMPILE_WARNING',
E_USER_ERROR => 'E_USER_ERROR',
E_USER_WARNING => 'E_USER_WARNING',
E_USER_NOTICE => 'E_USER_NOTICE');
return isset($e_names[$errno]) ? $e_names[$errno] : 'E_UNKNOWN';
}
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
$errname = errorName($errno);
$text = "$errname\n$errstr\n$errfile line $errline\n";
echo $text;
}
set_error_handler("myErrorHandler");
Appel à mysql_connect (il n'y a ni serveur, ni extension mysql pré-chargée) :
mysql_connect("127.0.0.1");
Fatal error: Call to undefined function mysql_connect() in C:\Documents and Settings\naholyr\Bureau\error.php on line 31
Avec la bonne extension chargée (mais toujours pas de serveur) :
dl('php_mysql.dll');
mysql_connect("127.0.0.1");
E_WARNING
mysql_connect(): Can't connect to MySQL server on '127.0.0.1' (10061)
C:\Documents and Settings\naholyr\Bureau\error.php line 31
Rien ne t'empêche de récupérer quelques infos en plus, et d'envoyer ça par mail. C'est en effet un bon moyen de détecter qu'il y a eu un oubli quelque part (oubli de gérer l'erreur en question) afin de le corriger au plus vite.