Laravel 在所有异常情况下发送电子邮件通知



我正在开发一个项目,我想有一个通知系统,特别是针对"直播的第一天" - 每次抛出异常时都会收到一封电子邮件。

我已经阅读了那篇文章并实现了它所说的内容。我的问题是,如果我的一个控制器中抛出异常,AppExceptionHandler.phpreport()的函数不会触发。

的问题:我有一个管理员控制器和一个在数据库中插入一些数据的函数。查询位于 try/catch 中:

try {
// commands
} catch (Exception $e){
Log::channel('admin_submissions')->info("Could not save submission. " . $e->getMessage());
return Redirect::back()->withErrors(['Could not save submission. Try again!']);
}

出于测试目的,我在try{}中插入了一个要抛出的错误,如下所示:

try {
$error = IlluminateValidationValidationException::withMessages([
'field_name_1' => ['Validation Message #1'],
'field_name_2' => ['Validation Message #2'],
]);
throw $error;
// commands

但是dd("trigger")函数(见下文(不会触发。

我怎样才能做到在每个异常(任何地方(都会发送电子邮件?

应用\异常\处理程序.php

我修改了报告函数只是为了检查异常是否真的通过该功能:

public function report(Exception $exception)
{
dd("trigger");
if ($this->shouldReport($exception)) {
app('sneaker')->captureException($exception);
}
parent::report($exception);
}

您必须首先知道您的应用程序抛出了哪种异常,可能是抛出的异常在$dontReport如果是这样,您必须首先从该表中删除所有异常,您将获得该异常的报告

相关内容

最新更新