Lumen 7自定义异常问题请教!

Reportable & Renderable 异常

除了在异常处理器的 reportrender 方法中检查异常类型,你还可以直接在自定义异常上定义 reportrender 方法。当定义了这些方法时,它们会被框架自动调用:

看官方文档,自定义异常上定义 reportrender 方法。当定义了这些方法时,它们会被框架自动调用,但是Lumen里貌似不能被条用,请教则么解决?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
giao哥
最佳答案

file

4年前 评论
汪阿浠 (楼主) 4年前
讨论数量: 4

有没有大神指教下?

5年前 评论

自定义一个异常

app/Exceptions/ApiException.php

class ApiException extends \Exception
{
    public function display()
    {
        return response()->json([
            'code' => 500,
            'message' => $this->getMessage()
        ]);
    }
}

app/Exceptions/Handler.php

public function render($request, Exception $e)
{
     if (method_exists($e, 'display')) {
         return $e->display();
     }
     return parent::render($request, $e);
}

测试

$router->get('/test',function (){
    throw new \App\Exceptions\ApiException('api 异常信息');
});

结果

{
  "code": 500,
  "message": "api异常信息"
}
5年前 评论
汪阿浠 (楼主) 4年前
汪阿浠 (楼主) 4年前
zxr615 (作者) 4年前
giao哥

file

4年前 评论
汪阿浠 (楼主) 4年前
giao哥

file

4年前 评论
汪阿浠 (楼主) 4年前

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