Laravel 5.5 添加对自定义异常报告的支持
发布于 作者 Joe Dixon
在 Laravel 5.5 中,可以在任何自定义异常上定义一个 report
方法。Laravel 将在 Illuminate\Foundation\Exceptions\Handler
类中捕获的任何异常上查找 report
方法的存在。
if (method_exists($e, 'report')) { return $e->report();}
这是一个方便的地方,可以向开发人员发送通知电子邮件,向应用程序监控软件报告,或在抛出异常时执行您可能需要的任何其他操作。
在以前的 Laravel 版本中,可以通过编辑 App\Exceptions\Handler
类的 report
方法来实现相同的结果。在这里,您可以监听特定异常的实例并相应地执行您的操作。
public function report(Exception $exception){ if ($exception instanceof MyException) { // do something here such as send an email to developer or notify monitoring app } return parent::report($exception);}
可以想象,随着应用程序的增长,这可能会变得有点混乱和难以维护。
这个即将到来的 Laravel 5.5 的小改动将对确保不再出现这个问题产生重大影响。