Index: Exception.php =================================================================== --- Exception.php (revision 20974) +++ Exception.php (working copy) @@ -19,74 +19,74 @@ * @version $Id$ */ -if (version_compare(PHP_VERSION, '5.3.0', '<')) { +/** + * @category Zend + * @package Zend + * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Exception extends Exception +{ /** - * @category Zend - * @package Zend - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License + * @var null|Exception */ - class Zend_Exception extends Exception + private $_previous = null; + + /** + * Construct the exception + * + * @param string $msg + * @param int $code + * @param Exception $previous + * @return void + */ + public function __construct($msg = '', $code = 0, Exception $previous = null) { - /** - * @var null|Exception - */ - private $_previous = null; - - /** - * Construct the exception - * - * @param string $msg - * @param int $code - * @param Exception $previous - * @return void - */ - public function __construct($msg = '', $code = 0, Exception $previous = null) - { + if (version_compare(PHP_VERSION, '5.3.0', '>=')) { + parent::__construct($msg, (int) $code, $previous); + } else { parent::__construct($msg, (int) $code); $this->_previous = $previous; } - - /** - * Returns previous Exception - * - * @return Exception|null - */ - final public function getPrevious() - { - return $this->_previous; + } + + /** + * Proxy for undefined methods + * + * @param string $method + * @param array $params + * @return mixed + */ + public function __call($method, $params) + { + if (strtolower($method) == 'getprevious') { + return $this->_getPrevious(); } - - /** - * String representation of the exception - * - * @return string - */ - public function __toString() - { - if (null !== ($e = $this->getPrevious())) { - return $e->__toString() - . "\n\nNext " - . parent::__toString(); - } - return parent::__toString(); - } + return call_user_func_array(array($this, $method), $params); } -} else { + /** - * @category Zend - * @package Zend - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License + * String representation of the exception + * + * @return string */ - class Zend_Exception extends Exception + public function __toString() { - public function __construct($msg = '', $code = 0, Exception $previous = null) - { - if (!is_int($code)) { - $code = (int) $code; - } - parent::__construct($msg, $code, $previous); + if (null !== ($e = $this->getPrevious())) { + return $e->__toString() + . "\n\nNext " + . parent::__toString(); } + return parent::__toString(); } + + /** + * Returns previous Exception + * + * @return null|Exception + */ + private function _getPrevious() + { + return $this->_previous; + } }