PEAR_Exception is the recommended error handling solution for PHP 5-based packages in PEAR. PEAR_Exception is a lightweight wrapper above the built-in Exception class in PHP 5 that provides the ability to specify causes for errors, register observers, and many more features.
Example usage (demonstration only, not recommended practice):
<?php require_once 'PEAR/Exception.php'; class MyPackage_Exception extends PEAR_Exception {} try { throw new PEAR_Exception('exception 1'); } catch (MyPackage_Exception $e) { echo 'this is not executed'; } catch (PEAR_Exception $e) { echo 'this is executed'; } try { throw new MyPackage_Exception('exception 2'); } catch (MyPackage_Exception $e) { echo 'this is executed'; } catch (PEAR_Exception $e) { echo 'this is not executed'; } ?> |
Exceptions in general should be used only for exceptional circumstances - for error conditions that require termination of execution. PEAR_Exception should mainly be used for transmitting error information outside the existing package, and not for normal flow control. Use Control Structures in favor of exceptions wherever possible.