昨天的问题没人回答,我就再问一遍吧
来源:8-12 Theme接口验证与重构
www974
2017-09-14
写回答
3回答
-
www974
提问者
2017-09-14
Render:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2017/9/11 0011 * Time: 17:11 */ namespace app\lib\exception; use think\exception\Handle; use think\Log; use think\Request; class ExceptionHandler extends Handle { private $code; private $msg; private $errorCode; //所有抛出的异常都会通过render方法渲染 public function render(\Exception $e){ //注意这里不用think\Exception 直接用父类Exception ,避免无法检测不属于think/Exception 的HttpException //return json("~~~~~~~~~~~~~~~"); //测试 if($e instanceof BaseException){ //如果是自定义异常 $this ->code = $e -> code; $this -> msg = $e -> msg; $this -> errorCode = $e -> errorCode; }else{ if(config('app_switch')){ //给服务器看 只需要走TP5默认的render方法即可 return parent::render($e); //调用父类方法 }else{ //给客户端看得 $this -> code = 500; $this -> msg = '服务器内部错误'; $this -> errorCode = 999; $this -> recordErrorLog($e); } } $request = Request::instance(); //var_dump($request); $result = [ 'msg' => $this -> msg, 'error_code' => $this -> errorCode, 'request_url' => $request -> url ]; //var_dump($result); return json($result,$this->code); } //日志 private function recordErrorLog(\Exception $e){ //初始化日志信息,日志地址和日志级别 Log::init([ 'type' => 'File', 'path' => LOG_PATH, 'level' => ['error'] //只记录error及其以上级别的错误 ]); //错误消息 错误级别 Log::record($e->getMessage(),'error'); } }
00 -
www974
提问者
2017-09-14
$result 返回的是false
00 -
7七月
2017-09-14
这个你看一下handler里的render方法 Exception是哪个?这里应该使用PHP的Exception而不要使用Think下的Exception。
0232017-09-14
相似问题