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

Reportable & Renderable 异常

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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
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年前

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