Правильный способ обработки ошибок, подавляемых @? - PullRequest
0 голосов
/ 28 сентября 2018

Как указано в руководстве , вызов error_reporting() вернет 0, если ошибка произошла из-за подавления @.Но поскольку мой рабочий сервер всегда установлен на error_reporting(0) (поверх сценария), вызов error_reporting() всегда будет возвращаться к 0.

Как я могу на самом деле перехватить или отличить допустимую ошибку от ошибки, подавленной @?

Сейчас мой обработчик ошибок выглядит примерно так:

if (error_reporting() == (E_ALL OR -1))
    echo 'display specific error';
elseif (error_reporting() == 0)
    echo 'display general error';

Примечание: это связано с моим ранним вопросом .

1 Ответ

0 голосов
/ 28 сентября 2018

Mu. Вы не должны устанавливать error_reporting на 0, даже в производственном процессе.

В процессе разработки вы захотите установить максимально высокий уровень сообщений об ошибках.получать уведомления обо всех без исключения ошибках, уведомлениях, сообщениях об устаревании или о возможных проблемах, которые могут вызвать проблемы в будущем.

В производственном процессе вы захотите установить уровень отчетов об ошибках, включающий только ошибки и, возможно, предупреждения.но не такие вещи, как уведомления об устаревании.Это необходимо для того, чтобы ваши журналы ошибок не содержали лишней информации и могли эффективно отслеживать производственные ошибки.

Поскольку вы всегда должны регистрировать ошибки .

Что вы не должны делать на производстве - это отображать ошибки на экране.Вот что контролирует ini_set('display_errors', true|false).Вы по-прежнему хотите отчетов об ошибках на производстве, только это входит в файл журнала.

...