Laravel 8 报告异常
所有异常都是由 App\Exceptions\Handler
类处理。此类包含一个 register
方法,可以在其中注册自定义异常报告程序和渲染器回调。我们将详细研究每个概念。异常报告用于记录异常或将其发送到如 Flare、Bugsnag 或 Sentry 等外部服务。默认情况下,将根据你的 日志 配置来记录异常。不过,你可以用任何自己喜欢的方式来记录异常。
例如,如果您需要使用不同的方式来报告不同的异常,您可以使用 reportable
方法来注册一个闭包,当需要报告给定的异常的时候便会执行它。 Laravel 将通过检查闭包的类型提示来判断闭包报告的异常类型:
use App\Exceptions\CustomException;
/**
* 为应用程序注册异常处理回调
*
* @return void
*/
public function register()
{
$this->reportable(function (CustomException $e) {
//
});
}
当您使用 reportable
方法注册一个自定义异常报告回调时, Laravel 依然会使用默认的日志配置记录下应用异常。 如果您想要在默认的日志堆栈中停止这个行为,您可以在定义报告回调时使用 stop
方法:
$this->reportable(function (CustomException $e) {
//
})->stop();
技巧:要为给定的异常自定义异常报告,您可以使用 可报告异常。