在中国备案的网站服务器,夜深人不静免费看高清,离线网站制作,wordpress只换域名如果不进过异常封装#xff0c;如果抛出一异常只会只会上图所示#xff0c;大部分时候#xff0c;用户只需要知道Division by zero就够了。
1、首先先建一个类BaseException并继承Exception#xff0c;这里有三个参数 $code 400; $msg ; $errorCode ;并处理当抛出异常时的…
如果不进过异常封装如果抛出一异常只会只会上图所示大部分时候用户只需要知道Division by zero就够了。
1、首先先建一个类BaseException并继承Exception这里有三个参数 $code 400; $msg ; $errorCode ;并处理当抛出异常时的参数。 下面要用来一个面向截面的思想我们打开config.php这个文件找到exception_handle这一项会发现“异常处理handle类 留空使用 \think\exception\Handle”这个字样事实上当我们不做处理时抛出异常是会经过\think\exception\Handle处理而现在我们要自己建处理Handle类。 代码如下新建一个ExceptionHandler类并继承Handle基类开始还是创建三个变量$code;$msg;$errorCode;并重写render方法注这里要使用use think\Exception不然会出现HttpException这种异常会不能处理的情况
class ExceptionHandler extends Handle
{private $code;private $msg;private $errorCode;
public function render(Exception $e)
{if($e instanceof BaseException){ //是否为BaseException继承类$this-code $e -code;$this-msg $e -msg;$this-errorCode $e -errorCode;}else{if(config(app_debug)true){ //如是开启调试就走原来的方法return parent::render($e);}else{ //如是关闭调试是未知错误我们只需要统一回复$this-code 500;$this-msg sorrywe make a mistake. (^o^)Y;$this-errorCode 999;$this-recodeErrorLog($e); //记录到日志中这个下一节会讲}}$request Request::instance(); //参数实例$result[msg $this-msg,errorCode $this-errorCode,require_url$request-url() //取出访问时的URL];return json($result,$this-code);
}
做完上一步就可以说封装好了当我们需要抛了特定的异常时我们只需要在建一个类如图MissException并继承BaseException如图所示。