中间件中抛出异常,Handler中无法捕获

中间件中抛出异常,Handler中无法捕获

中间件中抛出异常,Handler中无法捕获

中间件中抛出异常,Handler中无法捕获

还是不知道被哪个异常处理接管了…:triumph:

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6
随波逐流

如果是要自定义 未认证的异常, 可以尝试在 App\Exceptions\Handler 中重写 unauthenticated()

    /**
     * Convert an authentication exception into a response.
     *
     * @param  \Illuminate\Http\Request                  $request
     * @param  \Illuminate\Auth\AuthenticationException  $exception
     *
     * @return \Symfony\Component\HttpFoundation\Response
     */
    protected function unauthenticated($request, AuthenticationException $exception)
    {
        return $request->expectsJson() ? response()->json(['code' => 401, 'message' => $exception->getMessage()]) : redirect()->guest($exception->redirectTo() ?? route('login'));
    }
3年前 评论
晏南风 (楼主) 3年前

这是用的dingoapi吗

3年前 评论
晏南风 (楼主) 3年前

应该先需要在App\Providers\AppServiceProvider.php文件内重写一下boot方法,交给 App\Exceptions\Handler 来接管处理。

  public function boot()
    {
        app('api.exception')->register(function (\Exception $exception) {
            $request = Request::capture();
            return app('App\Exceptions\Handler')->render($request, $exception);
        });
    }

然后在App\Exceptions\Handler.php文件中render方法中进行异常捕获处理

3年前 评论
晏南风 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!