如何使用 Laravel 的 $dontReport 选项禁用错误异常显示



标题非常自明:如何确保正常的PHP错误,例如尝试输出未定义的变量。

echo $a; // ErrorException: Undefined variable: a

在PHP中,这只是一个错误,但是在laravel中,错误会升级到ErrorException,从而停止执行。我怎样才能禁用它。我试过了

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

protected $dontReport = [
IlluminateAuthAuthenticationException::class,
IlluminateAuthAccessAuthorizationException::class,
SymfonyComponentHttpKernelExceptionHttpException::class,
IlluminateDatabaseEloquentModelNotFoundException::class,
IlluminateSessionTokenMismatchException::class,
IlluminateValidationValidationException::class,
IlluminateExceptionErrorException::class, // added this
ErrorException::class, // and this
];

这个问题与我之前的问题有关,但我想使用另一种可能更有效的方法。

我试图实现的是,就像错误一样,代码不会停止执行,而是继续尽可能好地运行。

> Laravel使用自己的自定义错误处理程序。根据PHP手册:

以下错误类型无法使用用户定义的函数处理:E_ERROR、E_PARSE(可能是这种类型的错误(、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING,其中大部分E_STRICT在调用 set_error_handler(( 的文件中引发。

因此,Laravel无法捕捉和处理这种错误。

那里发生的事情是,当脚本停止执行并调用关闭函数时,错误将转换为ErrorException。在这一点上,你无能为力。

您可以使用异常处理程序更改引发异常时发生的情况。此方法将接收引发的异常,以便您可以按照所需的任何方式处理它。

相关内容

最新更新