diff --git a/library/think/exception/DbException.php b/library/think/exception/DbException.php new file mode 100644 index 00000000..a816ad6a --- /dev/null +++ b/library/think/exception/DbException.php @@ -0,0 +1,35 @@ + +// +---------------------------------------------------------------------- + +namespace think\exception; + +use think\Exception; + +/** + * Database相关异常处理类 + */ +class DbException extends Exception +{ + public function __construct($message, $code, $db, $config) + { + $this->message = $message; + $this->code = $code; + + $error = explode(':', $db->getError()); + $this->setData('Database Status', [ + 'Error Code' => $error[0], + 'Error Message' => $error[1], + 'Error SQL' => $db->getLastSql() + ]); + + $this->setData('Database Config', $config); + } +} diff --git a/library/think/exception/ErrorException.php b/library/think/exception/ErrorException.php new file mode 100644 index 00000000..9e081dfb --- /dev/null +++ b/library/think/exception/ErrorException.php @@ -0,0 +1,54 @@ + +// +---------------------------------------------------------------------- + +namespace think\exception; + +use think\Exception; + +/** + * ThinkPHP错误异常 + * 主要用于封装 set_error_handler 和 register_shutdown_function 得到的错误 + * 除开从 think\Exception 继承的功能 + * 其他和PHP系统\ErrorException功能基本一样 + */ +class ErrorException extends Exception +{ + /** + * 用于保存错误级别 + * @var integer + */ + protected $severity; + + /** + * 错误异常构造函数 + * @param integer $severity 错误级别 + * @param string $message 错误详细信息 + * @param string $file 出错文件路径 + * @param integer $line 出错行号 + */ + public function __construct($severity, $message, $file, $line) + { + $this->severity = $severity; + $this->message = $message; + $this->file = $file; + $this->line = $line; + $this->code = 0; + } + + /** + * 获取错误级别 + * @return integer 错误级别 + */ + final public function getSeverity() + { + return $this->severity; + } +}