我正在开发一个项目,我想有一个通知系统,特别是针对"直播的第一天" - 每次抛出异常时都会收到一封电子邮件。
我已经阅读了那篇文章并实现了它所说的内容。我的问题是,如果我的一个控制器中抛出异常,AppExceptionHandler.php
中report()
的函数不会触发。
我的问题:我有一个管理员控制器和一个在数据库中插入一些数据的函数。查询位于 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
如果是这样,您必须首先从该表中删除所有异常,您将获得该异常的报告