【发布时间】:2020-05-25 19:07:41
【问题描述】:
我正在通过异常处理程序的render方法中的类型检查异常来处理诸如NotFoundHttpException和UnauthorizedException之类的laravel异常,赚了很多instanceof 检查在我看来违反了 OCP(对扩展开放,对修改关闭)原则。 该文档通过使用必须从我不想要的控制器(或任何地方)抛出的可渲染异常(https://laravel.com/docs/6.x/errors#renderable-exceptions)解决了这个问题,我想捕获 laravel 异常,例如 ModelNotFoundException处理程序类并以干净的方式返回我的自定义响应,换句话说,我正在寻找一种干净的方式来处理 laravel 异常而不从控制器抛出异常。
【问题讨论】:
-
该框架为您提供了两种处理异常的方法,您似乎都不满意。为什么需要这种级别的微调控制?如果您只是想在发生给定异常时更改页面上显示的内容,您可以通过创建自己的文件来覆盖刀片文件,例如
resources/views/errors/404.blade.php。或者您是否还有其他需要实现的条件逻辑?
标签: laravel exception laravel-exceptions