This class is available as part of the PEAR package. Features include:
Nestable exceptions (
<?php throw new PEAR_Exception($msg, $prev_exception); ?> |
Subject/Observer pattern, triggered when an exception is instantiated
Clear, detailed and attractively formatted error messages
Extra context information available compared to built-in Exception. For instance, a cause of the exception (PEAR_Error/PEAR_ErrorStack/another Exception).
Exception cause can be a PEAR_Error object, PEAR_Exception object or an array of mixed PEAR_Exceptions/PEAR_ErrorStack warnings
callbacks for specific exception classes and their children
Usage example:
<?php require_once 'PEAR/Exception.php'; class Test { function foo() { throw new PEAR_Exception('Error Message', ERROR_CODE); } } function myLogger($pear_exception) { echo $pear_exception->getMessage(); } // each time a exception is thrown the 'myLogger' will be called // (its use is completely optional) PEAR_Exception::addObserver('myLogger'); $test = new Test; try { $test->foo(); } catch (PEAR_Exception $e) { print $e; } ?> |
API documentation is documented in the documentation for the PEAR package generated by phpDocumentor. The class is very simple, examine the source in the PEAR package to get a better idea of how it works.