我正在开发一个项目,我想拥有一个专门用于“上班第一天”的通知系统-每次引发异常时接收电子邮件。
我已经读过article,并执行了它所说的内容。我的问题是,如果在我的一个控制器中抛出异常,则report()
中的函数App\Exception\Handler.php
不会触发。
我的问题: 我有一个AdminController和一个在数据库中插入一些数据的函数。查询位于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 = \Illuminate\Validation\ValidationException::withMessages([
'field_name_1' => ['Validation Message #1'],
'field_name_2' => ['Validation Message #2'],
]);
throw $error;
// commands
但是dd("trigger")
函数(如下所示)未触发。
在每个例外情况下(如何发送邮件)我该如何处理?
App \ Exceptions \ Handler.php
我已经修改了报告功能,只是为了检查异常是否确实通过了该功能:
public function report(Exception $exception)
{
dd("trigger");
if ($this->shouldReport($exception)) {
app('sneaker')->captureException($exception);
}
parent::report($exception);
}
答案 0 :(得分:1)
您首先必须知道您的应用程序引发了哪种异常,如果是,则可能是$dontReport
中引发的异常,如果这样,您必须首先从该表中删除所有异常,然后才能获取该异常的报告。