From 55c4ac1bfe565f1ca7f537fdd8b7a201be28e581 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 10 Nov 2005 12:47:19 +0000 Subject: Initial import of prado framework --- framework/Exceptions/TException.php | 175 ++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 framework/Exceptions/TException.php (limited to 'framework/Exceptions/TException.php') diff --git a/framework/Exceptions/TException.php b/framework/Exceptions/TException.php new file mode 100644 index 00000000..0c51e1f1 --- /dev/null +++ b/framework/Exceptions/TException.php @@ -0,0 +1,175 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + * @package System.Exceptions + */ + +/** + * TException class + * + * TException is the base class for all PRADO exceptions. + * TException + * TSystemException + * TNullReferenceException + * TIndexOutOfRangeException + * TArithmeticException + * TInvalidValueException + * TInvalidTypeException + * TInvalidFormatException + * TInvalidOperationException + * TConfigurationException + * TSecurityException + * TIOException + * TDBException + * THttpException + * TNotSupportedException + * TApplicationException + * + * @author Qiang Xue + * @version $Revision: $ $Date: $ + * @package System.Exceptions + * @since 3.0 + */ +class TException extends Exception +{ + private $_errorCode=''; + + public function __construct($errorCode) + { + $this->_errorCode=$errorCode; + $args=func_get_args(); + $args[0]=$this->translateErrorCode($errorCode); + $str=call_user_func_array('sprintf',$args); + parent::__construct($str); + } + + protected function translateErrorCode($key) + { + // $msgFile=dirname(__FILE__).'/messages.'.Prado::getLocale(); + // if(!is_file($msgFile)) + $msgFile=dirname(__FILE__).'/messages.en'; + if(($entries=@file($msgFile))===false) + return $key; + else + { + foreach($entries as $entry) + { + @list($code,$message)=explode('=',$entry,2); + if(trim($code)===$key) + return trim($message); + } + return $key; + } + } + + public function getErrorCode() + { + return $this->_errorCode; + } + + public function setErrorCode($errorCode) + { + $this->_errorCode=$errorCode; + } + + public function getErrorMessage() + { + return $this->getMessage(); + } + + public function setErrorMessage($msg) + { + $this->message=$msg; + } +} + +class TSystemException extends TException +{ +} + +class TApplicationException extends TException +{ +} + +class TNullReferenceException extends TSystemException +{ +} + +class TIndexOutOfRangeException extends TSystemException +{ +} + +class TArithmeticException extends TSystemException +{ +} + +class TInvalidOperationException extends TSystemException +{ +} + +class TInvalidDataTypeException extends TSystemException +{ +} + +class TInvalidDataValueException extends TSystemException +{ +} + +class TInvalidDataFormatException extends TSystemException +{ +} + +class TConfigurationException extends TSystemException +{ +} + +class TIOException extends TException +{ +} + +class TDBException extends TException +{ +} + +class TSecurityException extends TException +{ +} + +class THttpException extends TException +{ +} + +class TNotSupportedException extends TException +{ +} + +class TPhpErrorException extends TException +{ + public function __construct($errno,$errstr,$errfile,$errline) + { + static $errorTypes=array( + E_ERROR => "Error", + E_WARNING => "Warning", + E_PARSE => "Parsing Error", + E_NOTICE => "Notice", + E_CORE_ERROR => "Core Error", + E_CORE_WARNING => "Core Warning", + E_COMPILE_ERROR => "Compile Error", + E_COMPILE_WARNING => "Compile Warning", + E_USER_ERROR => "User Error", + E_USER_WARNING => "User Warning", + E_USER_NOTICE => "User Notice", + E_STRICT => "Runtime Notice" + ); + $errorType=isset($errorTypes[$errno])?$errorTypes[$errno]:'Unknown Error'; + parent::__construct("[$errorType] $errstr (@line $errline in file $errfile)."); + } +} + +?> \ No newline at end of file -- cgit v1.2.3