/zf/library/Zend/Exception.php
PHP | 96 lines | 36 code | 5 blank | 55 comment | 6 complexity | 496025ea0e253c9d0b75a0fbf8f355b2 MD5 | raw file
Possible License(s): MIT, BSD-3-Clause, Apache-2.0, LGPL-2.1, LGPL-3.0, BSD-2-Clause
1<?php 2/** 3 * Zend Framework 4 * 5 * LICENSE 6 * 7 * This source file is subject to the new BSD license that is bundled 8 * with this package in the file LICENSE.txt. 9 * It is also available through the world-wide-web at this URL: 10 * http://framework.zend.com/license/new-bsd 11 * If you did not receive a copy of the license and are unable to 12 * obtain it through the world-wide-web, please send an email 13 * to license@zend.com so we can send you a copy immediately. 14 * 15 * @category Zend 16 * @package Zend 17 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) 18 * @license http://framework.zend.com/license/new-bsd New BSD License 19 * @version $Id: Exception.php 23775 2011-03-01 17:25:24Z ralph $ 20 */ 21 22/** 23* @category Zend 24* @package Zend 25* @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) 26* @license http://framework.zend.com/license/new-bsd New BSD License 27*/ 28class Zend_Exception extends Exception 29{ 30 /** 31 * @var null|Exception 32 */ 33 private $_previous = null; 34 35 /** 36 * Construct the exception 37 * 38 * @param string $msg 39 * @param int $code 40 * @param Exception $previous 41 * @return void 42 */ 43 public function __construct($msg = '', $code = 0, Exception $previous = null) 44 { 45 if (version_compare(PHP_VERSION, '5.3.0', '<')) { 46 parent::__construct($msg, (int) $code); 47 $this->_previous = $previous; 48 } else { 49 parent::__construct($msg, (int) $code, $previous); 50 } 51 } 52 53 /** 54 * Overloading 55 * 56 * For PHP < 5.3.0, provides access to the getPrevious() method. 57 * 58 * @param string $method 59 * @param array $args 60 * @return mixed 61 */ 62 public function __call($method, array $args) 63 { 64 if ('getprevious' == strtolower($method)) { 65 return $this->_getPrevious(); 66 } 67 return null; 68 } 69 70 /** 71 * String representation of the exception 72 * 73 * @return string 74 */ 75 public function __toString() 76 { 77 if (version_compare(PHP_VERSION, '5.3.0', '<')) { 78 if (null !== ($e = $this->getPrevious())) { 79 return $e->__toString() 80 . "\n\nNext " 81 . parent::__toString(); 82 } 83 } 84 return parent::__toString(); 85 } 86 87 /** 88 * Returns previous Exception 89 * 90 * @return Exception|null 91 */ 92 protected function _getPrevious() 93 { 94 return $this->_previous; 95 } 96}