有些业务异常,手动抛出的异常,框架异常,未知异常想在中间件中获取,并需要记录行数和trace信息,
$response = $handler($request);
$exception = $response->exception();
if ($exception) {
return json([
'msg' => $exception->getMessage(),
'code' => 101,
'trace' => $exception->getTrace()
]);
}
这种抛不出来,把trace去掉可以正常返回
使用异常处理类去处理异常
那假如说我在一个控制器中,写一个 $a = 1; return $a[11]; 这种语法的错误,我想要自定义返回数据,且需要记录下错误信息和未知,这种不是手动抛出的可以捕获吗
可以
不行的,只有手动抛才会获取异常,语法的错误捕捉不到
config/exception.php
改成你自己的异常处理类用它解决你的所有异常:https://www.workerman.net/plugin/16