Gestion personnalisée des exceptions PHP
Posté : 11 nov. 2008, 19:39
Bonjour à tous,
La classe WdException permet de lancer des exceptions tout en profitant des fonctionnalités de la classe WdDebug, et notamment des rapports d'incidents. Je vous invite à découvrir le framework WdCore, duquel est issue la classe.
La classe WdException étend la classe Exception et présente les fonctionnalités suivantes :
* Le message de l'exception est formaté et localisé (traduit) grâce à la classe WdLocale.
* Le message de l'exception est formaté de manière similaire aux erreurs personnalisées par la classe WdDebug.
* Les messages issus de la journalisation de la class WdDebug peuvent être ajoutés au message de l'exception.
* Un rapport d'incident peut être émit.
Je vous laisse découvrir tout ça : Gestion personnalisée des exceptions PHP
La classe est aussi simple à mettre en ouvre que la classe WdDebug :
Débuggez bien !
La classe WdException permet de lancer des exceptions tout en profitant des fonctionnalités de la classe WdDebug, et notamment des rapports d'incidents. Je vous invite à découvrir le framework WdCore, duquel est issue la classe.
La classe WdException étend la classe Exception et présente les fonctionnalités suivantes :
* Le message de l'exception est formaté et localisé (traduit) grâce à la classe WdLocale.
* Le message de l'exception est formaté de manière similaire aux erreurs personnalisées par la classe WdDebug.
* Les messages issus de la journalisation de la class WdDebug peuvent être ajoutés au message de l'exception.
* Un rapport d'incident peut être émit.
Je vous laisse découvrir tout ça : Gestion personnalisée des exceptions PHP
La classe est aussi simple à mettre en ouvre que la classe WdDebug :
define('WDDEBUG_SILENT', true);
define('WDDEBUG_REPORT_ADDRESS', '[email protected]');
define('WDEXCEPTION_WITH_LOG', true);
require_once 'wdexception.php';
set_exception_handler(array('WdDebug', 'exceptionHandler');
Un exemple :function test($a)
{
if ($a != 1)
{
throw new WdException('$a must be 1, "\1" given instead', $a);
}
}
wd_log('A little message before the big crash');
test(13);
Qui nous donne : Code : Tout sélectionner
Exception with the following message:
$a must be 1, "13" given instead
in G:\Weirdog\www\wd\_test\debug.php at line 19
Stack trace:
#00 — /debug.php(25): test(13)
Log:
A little message before the big crash