Какие уровни ошибок PHP останавливают выполнение? - PullRequest
0 голосов
/ 14 мая 2018

Я работаю над очень старым унаследованным проектом, и где-то в скрипте, запущенном cron, происходит что-то, что останавливает скрипт, и в файле остается консультативная блокировка, что вызывает дальнейшие проблемы в следующих раундах скриптов, запускаемых позжехрон.Основываясь на журналах, я более или менее точно определил, какая часть скрипта не удалась, поэтому я поместил это в блок try-finally.Однако я совершенно уверен в том, что эта часть не работает, рассматриваемый файл продолжает зависать, поэтому я подозреваю, что возникает какая-то ошибка вроде E_ERROR, которая не перехватывается, как \ Exception.Я хотел бы написать собственный обработчик ошибок с set_error_handler, и мне нужно определить типы ошибок для обработки. Я хочу обрабатывать только ошибки, которые останавливают выполнение скрипта, мой вопрос находится рядом с E_ERROR, типы ошибок которого прерывают выполнение какхорошо?

set_error_handler('fatalErrorHandler', [E_ERROR]);

function fatalErrorHandler($errno, $errstr, $errfile, $errline){
     throw new \Exception($errstr." @$errfile:$errline", $errno);
}

/* ... */ 

try{
     // Likely defective code...
}catch(\Exception $e) {
     $cronlocklog->add("cron job failed with error: ".$e->getMessage());
} finally {
     flock($cronlockfd, LOCK_UN);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...