Ошибка не перехватывается блоком try catch

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;
}

Если поднять до memory_limit = 512M в php.ini он работает нормально, но меня беспокоит то, что ошибка не обрабатывается.

Я читал, что вы можете написать свой собственный обратный вызов php, но я боюсь, что обработка ошибок Laravel может зависеть от этого.

Есть идеи, как решить проблему? 10x

0

Решение

Поймать не работает для фатальных ошибок. Вы можете использовать try-catch для исключений, но фатальные ошибки фактически «ломают» вашу программу, вы не можете просто поймать их, вы должны их решить. Не то чтобы предупреждения об исключениях не должны решаться, но они не так критичны, как фатальные ошибки.

Решение, которое я вижу, либо оптимизирует ваш запрос (может быть, добавит ограничение, может помочь), либо вы увеличите объем памяти, как вы предложили.

Эта ошибка обычно возникает из-за «слишком большой обработки данных», поэтому либо вы сужаете данные, чтобы ускорить выполнение скрипта, либо увеличиваете лимит.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector