【问题标题】:Error is not intercepted by try catch block错误未被 try catch 块拦截
【发布时间】:2019-04-11 23:57:29
【问题描述】:
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted
(tried to allocate 32768 bytes) in
/vendor/symfony/debug/Exception/FatalErrorException.php on line 1  PHP Stack trace:

我收到以下错误,该错误未在 try catch 块中被拦截。

use \Exception as Exception;

try {
   $this->recursiveCall();
} catch (ErrorException $ex) {
    exit;
}catch (Exception $ex) {
    exit;
}

如果在 php.ini 中提高到 memory_limit = 512M 它工作正常,但困扰我的是错误没有得到处理。

我听说你可以编写自己的 php 错误回调,但我担心 Laravel 错误处理可能依赖于此。

任何想法如何处理这个问题? 10 倍

【问题讨论】:

    标签: php laravel exception error-handling runtime-error


    【解决方案1】:

    Catch 不适用于致命错误。您可以使用 try-catch 处理异常,但致命错误实际上会“破坏”您的程序,您不能简单地捕获它们,您必须解决它们。并不是说不应该解决异常警告,而是它们不像致命错误那么严重。

    我看到的解决方案是优化您的查询(也许添加限制会有所帮助),或者您按照您的建议增加内存大小。

    此错误通常来自“数据处理过多”,因此您要么缩小数据范围以使脚本运行得更快,要么增加限制。

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 2022-11-20
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 2016-05-04
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多