ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**一. 异常的分类:** **1. 由于用户行为导致的异常(没有通过验证器,没查询到结果)** 通常不需要记录日志 需要向用户返回具体信息 **2. 服务器自身异常(代码错误, 调用外部接口错误)** 通常只记录日志 不向客户端返回具体原因 全局异常处理类[配置文件中指向该文件] ~~~ class ExceptionHandler extends Handle { private $code; private $msg; private $errCode; //需要返回客户端当前请求的url路径 /** * @param Exception $e * @return \think\Response|void */ public function render(\Exception $e) { // 自定义的异常类,继承BaseException if($e instanceof BaseException){ $this->code=$e->code; $this->msg=$e->msg; $this->errCode=$e->errCode; }else{ // 系统的异常,判断是不是调试模式:是,显示tp5的异常,否则显示封装接口的异常 if(config('app.app_debug')){ //使用tp5默认的错误提示 return parent::render($e); }else{ $this->code=500; $this->msg='服务器内部错误'; $this->errCode=999; //真是的错误写入日志 // echo($e->getMessage()); Log::record($e->getMessage(),'error'); } } //返回错误数据 $url=request()->url(); $result=[ 'msg'=>$this->msg, 'errCode'=>$this->errCode, 'url'=>$url ]; return json($result,$this->code); } } ~~~