Правильный способ обработки ошибок, подавленных @?

Как указано в руководство, призвание 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';

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

0

Решение

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

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

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

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

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

2

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

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

По вопросам рекламы [email protected]