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

Reportable & Renderable 异常

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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
giao哥
最佳答案

file

5年前 评论
汪阿浠 (楼主) 5年前
讨论数量: 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年前 评论
汪阿浠 (楼主) 5年前
汪阿浠 (楼主) 5年前
zxr615 (作者) 5年前
giao哥

file

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

file

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

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