App\Exceptions\Handler.php 不处理异常

项目框架: laravel 5.2
Api框架:Dingo API 1.0
疑问:近期项目在做一个获取活动详情的接口代码如下:

public function show(Activity $activity)
{
    return $this->response->item($activity, new ActivityTransformer());
}

然后我测试请求一个不存在的资源,预期得到的结果应该是 404 的 NotFoundException 异常,但实际响应的异常是
ModelNotFoundException
file

根据文档,框架的所有异常都会经过 App\Exceptions\Handler.php 来处理,而 render 方法里也处理了 ModelNotFoundException

public function render($request, Exception $e)
{
    if ($e instanceof ModelNotFoundException) {
        $e = new NotFoundHttpException($e->getMessage(), $e);
    }
    return parent::render($request, $e);
}

想请教下为什么没有按照代码里的执行 render 方法抛出 NotFoundException 异常呢?

JasonG
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
leo

因为 Dingo 接管了异常处理,你想要自定义异常的返回需要通过 Dingo 的方式,具体怎么操作请自行查看文档。

5年前 评论
JasonG

@leo 感谢大佬提示,我自己先尝试一下!

5年前 评论

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