gpt4 book ai didi

php - 禁止为 E_USER_WARNING 抛出异常

转载 作者:可可西里 更新时间:2023-10-31 22:51:06 26 4
gpt4 key购买 nike

当我这样做时,Laravel 返回 500:

trigger_error("Some message", E_USER_WARNING);

我需要它出错,但我确实希望它通过 \App\Exceptions\Handler::report 运行将警告记录到 Sentry。

如何禁用 Laravel 5.2 将警告和错误转换为异常?

最佳答案

您可以编辑 laravel 的错误处理程序以仅在 HandleExceptions.php 中报告警告

public function handleError($level, $message, $file = '', $line = 0, $context = [])
{
$exception = new ErrorException($message, 0, $level, $file, $line);

if (E_USER_WARNING & $level) {
$this->getExceptionHandler()->report($exception);
}
elseif (error_reporting() & $level) {
throw $exception;
}
}

用户警告:修改供应商代码通常不是一个好主意。

您可以通过扩展HandleExceptions 类并在Kernel.php 中注册您的新类来避免修改供应商代码。

MyHandleExceptions extends HandleExceptions {
public function handleError($level, $message, $file = '', $line = 0, $context = [])
{
if (E_USER_WARNING & $level) {
$this->getExceptionHandler()->report(new ErrorException($message, 0, $level, $file, $line));
}
else {
return parent::handleError($level, $message, $file, $line, $context);
}
}
}

关于php - 禁止为 E_USER_WARNING 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44666834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com