Я потратил около недели, пытаясь разобраться с обработчиками ошибок и исключений. (Мне 64 года и все забывают десять раз, поэтому я ОЧЕНЬ медленный.)
С фатальной ошибкой я отправляю себе текстовое сообщение, с другими ошибками я получаю электронное письмо. (Я добавил массивы в конце, если они могут быть полезны.)
Для ошибок есть https://php.net/manual/en/errorfunc.constants.php I, но я не могу найти ничего похожего для исключений.
Я полагаю, что могу установить свои собственные значения исключений, но существуют ли согласованные уровни серьезности для общих исключений, PDOExceptions
и т. Д. Единственное место, где я нахожу серьезность, указано в ErrorException
. (Я сейчас использую только исключения PDOException, но пытаюсь отловить другие «общие».)
Указатель на вспомогательную диаграмму серьезности наиболее ценится. Я свободно признаю, что борюсь с исключениями.
PS Я посмотрел на https://www.php.net/manual/en/errorexception.getseverity.php, но похоже, что это для ошибок, отправляемых в виде исключений - или ... Теперь он окончательно запутался.
=============================================== ===========
Массивы кодов ошибок, если они полезны.
$phpErrorCodes = array (
1 => "E_ERROR",
2 => "E_WARNING",
4 => "E_PARSE",
8 => "E_NOTICE",
16 => "E_CORE_ERROR",
32 => "E_CORE_WARNING",
64 => "E_COMPILE_ERROR",
128 => "E_COMPILE_WARNING",
256 => "E_USER_ERROR",
512 => "E_USER_WARNING",
1024 => "E_USER_NOTICE",
2048 => "E_STRICT E_ALL",
4096 => "E_RECOVERABLE_ERROR",
8192 => "E_DEPRECATED",
16384=> "E_USER_DEPRECATED",
32767=> "E_ALL");
$phpErrorCodesFatal = array (
1 => "E_ERROR",
16 => "E_CORE_ERROR",
64 => "E_COMPILE_ERROR",
4096 => "E_RECOVERABLE_ERROR");
$phpErrorCodesFatalNumberOnly = array (
1 ,
16 ,
64 ,
4096);
//4096 recoverable but dangerous so treated as fatal