请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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);
}

正在回答 回答被采纳积分+3

2回答

提问者 loti 2017-10-17 17:58:09

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

错误:use think\Exception;

正确:use Exception;

已经解决谢谢。

1 回复 有任何疑惑可以回复我~
  • 7七月 #1
    这个确实有这个问题,后面课程有特别说明。因为智能感知,自动引入了think应该传入PHP的 Exception基类。
    回复 有任何疑惑可以回复我~ 2017-10-18 02:15:52
  • 提问者 loti #2
    谢谢回复
    回复 有任何疑惑可以回复我~ 2017-10-18 02:17:14
提问者 loti 2017-10-17 16:36:16

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信