From a29f51ced2d00fb989ecee2f45980fc6e5fe684b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BA=A6=E5=BD=93=E8=8B=97=E5=84=BF?= Date: Fri, 29 Jan 2016 12:49:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0DB=E5=BC=82=E5=B8=B8=E5=92=8C?= =?UTF-8?q?Error=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/exception/DbException.php | 35 ++++++++++++++ library/think/exception/ErrorException.php | 54 ++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 library/think/exception/DbException.php create mode 100644 library/think/exception/ErrorException.php 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; + } +}