异常处理

配置

config/exception.php

return [
    // 这里配置异常处理类
    '' => support\exception\Handler::class,
];

多应用模式时,你可以为每个应用单独配置异常处理类,参见多应用

默认异常处理类

webman中异常默认由 support\exception\Handler 类来处理。可修改配置文件config/exception.php来更改默认异常处理类。异常处理类必须实现Webman\Exception\ExceptionHandlerInterface 接口。

interface ExceptionHandlerInterface
{
    /**
     * 记录日志
     * @param Throwable $e
     * @return mixed
     */
    public function report(Throwable $e);

    /**
     * 渲染返回
     * @param Request $request
     * @param Throwable $e
     * @return Response
     */
    public function render(Request $request, Throwable $e) : Response;
}

渲染响应

异常处理类中的render方法是用来渲染响应的。

如果配置文件config/app.phpdebug值为true(以下简称app.debug=true),将返回详细的异常信息,否则将返回简略的异常信息。

如果请求期待是json返回,则返回的异常信息将以json格式返回,类似

{
    "code": "500",
    "msg": "异常信息"
}

如果app.debug=true,json数据里会额外增加一个trace字段返回详细的调用栈。

你可以编写自己的异常处理类来更改默认异常处理逻辑。

编辑于2023-01-08 18:59:06 完善本页 +发起讨论