阅读(1171) (6)

Laravel 8 报告异常

2021-06-28 15:05:12 更新

所有异常都是由 AppExceptionsHandler 类处理。此类包含一个 register 方法,可以在其中注册自定义异常报告程序和渲染器回调。我们将详细研究每个概念。异常报告用于记录异常或将其发送到如 FlareBugsnagSentry 等外部服务。默认情况下,将根据你的 日志 配置来记录异常。不过,你可以用任何自己喜欢的方式来记录异常。

例如,如果您需要使用不同的方式来报告不同的异常,您可以使用 reportable 方法来注册一个闭包,当需要报告给定的异常的时候便会执行它。 Laravel 将通过检查闭包的类型提示来判断闭包报告的异常类型:

use AppExceptionsCustomException;

/**
 * 为应用程序注册异常处理回调
 *
 * @return void
 */
public function register()
{
    $this->reportable(function (CustomException $e) {
        //
    });
}

当您使用 reportable 方法注册一个自定义异常报告回调时, Laravel 依然会使用默认的日志配置记录下应用异常。 如果您想要在默认的日志堆栈中停止这个行为,您可以在定义报告回调时使用 stop 方法:

$this->reportable(function (CustomException $e) {
    //
})->stop(); 

技巧:要为给定的异常自定义异常报告,您可以使用 可报告异常