Manuel Pear
Using PEAR_Exception for advanced error handling in PHP 5+
Synopsis
Introduction to the usage of PEAR_Exception
Introduction
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.
Remonter 
