Секция exception_handling
Отвечает за обработку ошибок.
'exception_handling' => array (
'value' => array (
'debug' => false,
'handled_errors_types' => E_ALL & ~E_NOTICE &
~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE &
~E_WARNING & ~E_STRICT & ~E_USER_WARNING &
~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
Параметр | Значение |
debug | Ключ отвечает за то, будет ли выведена ошибка на страницу в браузере. Выводить ошибки рекомендуется только на время разработки или отладки. Иначе потенциально может быть разглашение информации. |
handled_errors_types | В ключе задаются типы ошибок, которые система отлавливает (не игнорирует). |
exception_errors_types | В ключе задаются типы ошибок, при которых система выбрасывает исключение. |
ignore_silence | Ключ отменяет действие оператора управления ошибками (@). |
log | В ключе задаются параметры логирования ошибок.
Если ключа нет - логирования не будет.
Если задать как показано в примере:
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
), то логироваться будет в файл с ограничением его размера. Если в корне сайта лежит файл error.php и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения. Если задать в общем случае, то можно логгировать куда угодно: 'log' => array(
'class_name' => 'MyLog',
// custom log class, must extends ExceptionHandlerLog;
// can be omited, in this case default Diag\FileExceptionHandlerLog will be used
'extension' => 'MyLogExt', // php extension, is used only with 'class_name'
'required_file' => 'modules/mylog.module/mylog.php'
// included file, is used only with 'class_name'
'settings' => array( // any settings for 'class_name'
),
),
|
assertion_throws_exception |
Включение поддержки команды assert .
|
assertion_error_type |
В ключе задаются типы ошибок, для которых не верный assert выбрасывает исключение.
|
В handled_errors_types, exception_errors_types, assertion_error_type необходимо передать тип ошибки. Тип ошибки представляет из себя числовой код. Но коды знать и помнить не нужно. Например, параметр exception_errors_types. Что означает данная запись: E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING?