全局异常处理

This commit is contained in:
yanwnewu 2018-11-30 18:04:35 +08:00
parent 430e466e12
commit 70889deb73
3 changed files with 47 additions and 15 deletions

View File

@ -6,6 +6,7 @@
*/ */
namespace app\admin\request; namespace app\admin\request;
use think\exception\HttpException;
use think\Request; use think\Request;
abstract class FormRequest extends Request abstract class FormRequest extends Request
@ -19,20 +20,7 @@ abstract class FormRequest extends Request
parent::__construct(); parent::__construct();
if ($this->withServer($_SERVER)->isAjax(true) && $err = $this->validate()) { if ($this->withServer($_SERVER)->isAjax(true) && $err = $this->validate()) {
exit($this->error($err)); throw new HttpException(0, $err);
} }
} }
protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
{
return json([
'code' => 0,
'msg' => $msg,
'data' => $data,
'url' => $url,
'wait' => $wait,
])->send();
}
} }

View File

@ -0,0 +1,44 @@
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/11/30
* Time: 17:25
*/
namespace app\exceptions;
use Exception;
use think\exception\HttpException;
class Handle extends \think\exception\Handle
{
/**
* rewrite render
*
* @time at 2018年11月30日
* @param Exception $e
* @return \think\Response|\think\response\Json
*/
public function render(Exception $e)
{
switch (true) {
case $e instanceof HttpException:
return $this->error($e->getMessage());
break;
default:
return $this->convertExceptionToResponse($e);
break;
}
}
protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
{
return json([
'code' => 0,
'msg' => $msg,
'data' => $data,
'url' => $url,
'wait' => $wait,
]);
}
}

View File

@ -141,6 +141,6 @@ return [
// 显示错误信息 // 显示错误信息
'show_error_msg' => false, 'show_error_msg' => false,
// 异常处理handle类 留空使用 \think\exception\Handle // 异常处理handle类 留空使用 \think\exception\Handle
'exception_handle' => '', 'exception_handle' => app\exceptions\Handle::class,
]; ];