Можно ли отключить отчеты об ошибках только для части вашего скрипта?

PHP документация читает (выделение мое):

Функция error_reporting () устанавливает директиву error_reporting в
во время выполнения. PHP имеет много уровней ошибок, с помощью этой функции устанавливает, что
уровень продолжительности (времени выполнения) вашего скрипта.
Если дополнительный уровень
не установлен, error_reporting () просто вернет текущую ошибку
уровень отчетности.

Означает ли это, что уровень сообщений об ошибках может быть установлен только один раз в сценарии PHP, а не изменились впоследствии? Например, возможно ли это сделать:

error_reporting(0);

try {
errorSilently();
} catch (Exception $e) {
// Do nothing
}

error_reporting(E_ALL);

try {
errorLOUDLY();
} catch (Exception $e) {
// Do nothing
}

Обратите внимание, что я написал // Do nothing потому что кажется, что если выдается ошибка, Apache записывает ее в error_log в любом случае, пойман ли он или нет. То, что я хочу сделать, это отключить это поведение, а не записывать в журнал ошибок.

2

Решение

Да, вы можете изменить уровень сообщений об ошибках в любое время во время выполнения вашей программы, и он останется на этом новом уровне, пока вы не измените его снова. Вы Можно «тишина» только в определенных частях. Обратите внимание, что error_reporting() возвращает старый уровень, в частности, чтобы вы могли делать такие вещи, как:

$previous = error_reporting(0);

something_which_produces_warnings_which_can_safely_be_ignored();

error_reporting($previous);

Также временно отключить ошибку протоколирование вам может понадобиться ini_set('log_errors', false),

И нет, try..catch не имеет ничего общего с Отчет об ошибках. Это отдельные механизмы. error_reporting влияет на ошибки, вызванные trigger_error; try..catch это механизм для обработки исключений, генерируемых через throw,

7

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

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

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