错误处理
最后更新于:2022-04-01 15:07:48
所有的异常都由 App\Exceptions\Handler 类处理。这个类包含两个方法: report 和 render 。
report 方法用来记录异常或把异常传递到外部服务,例如: BugSnag 。默认情况下, report 方法只基本实现简单地传递异常到父类并于父类记录异常。然而,你可以依你所需自由地记录异常。如果你需要使用不同的方法来报告不同类型的异常,你可以使用 PHP 的 instanceof 比较运算符:
~~~
/**
* 报告或记录异常。
*
* 这是一个发送异常到 Sentry、Bugsnag 等服务的好地方。
*
* @param \Exception $e
* @return void
*/
public function report(Exception $e)
{
if ($e instanceof CustomException)
{
//
}
return parent::report($e);
}
~~~
render 方法负责把异常转换成应该被传递回浏览器的 HTTP 响应。默认情况下,异常会被传递到基础类并帮你产生响应。然而,你可以自由的检查异常类型或返回自定义的响应。
异常处理进程的 dontReport 属性是个数组,包含应该不要被纪录的异常类型。由 404 错误导致的异常默认不会被写到日志文件。你可以依照需求添加其他类型的异常到这个数组。