Laravel所有异常的电子邮件通知

时间:2018-09-26 09:55:21

标签: php laravel exception-handling

我正在开发一个项目,我想拥有一个专门用于“上班第一天”的通知系统-每次引发异常时接收电子邮件。

我已经读过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);
    }

1 个答案:

答案 0 :(得分:1)

您首先必须知道您的应用程序引发了哪种异常,如果是,则可能是$dontReport中引发的异常,如果这样,您必须首先从该表中删除所有异常,然后才能获取该异常的报告。