return null的时候在ExceptionHandler的render方法中,抛出的实例不是BaseException的实例

来源:6-5 实现自定义全局异常处理 下

loti

2017-10-17

return null的时候在ExceptionHandler的render方法中,抛出的实例不是BaseException的实例,打断点看是ErrorException,我换成了ErrorException可以进去了,帮忙看下是为什么?

public function render(Exception $e)
{
   if ($e instanceof ErrorException)
   {
       // 如果是自定义的异常
       $this->code = 111;
       $this->msg = '2222';
       $this->errorCode = '40002';
   }
   else{
       $this->code = 500;
       $this->msg = '服务器内部错误';
       $this->errorCode = 999;
   }

   $request = Request::instance();
   $result = [
       'msg' => $this->msg,
       'error_code' => $this->errorCode,
       'request_url' => $request->url()
   ];
   return json($result, $this->code);
}

写回答

2回答

loti

提问者

2017-10-17

已经找到问题,ExceptionHandler.php中引入的类不对;

错误:use think\Exception;

正确:use Exception;

已经解决谢谢。

1
2
loti
谢谢回复
2017-10-18
共2条回复

loti

提问者

2017-10-17

补充一下,我的tp5版本是 define('THINK_VERSION', '5.0.11');

0
0

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程