G-Web IT. Битрикс-интегратор. Сложный ecommerce и нестандартные интеграции. G-Web IT
Адрес: Летная улица, 30, корпус 1 141021 Мытищи,
Телефон:+7 985 513–06–60, Электронная почта: info@goldwebit.net
По будням с 10:00 до 20
Мы свяжемся с Вами максимально оперативно
+7 (985) 513-06-60

G-Web IT

+7 (985) 513-06-60 online-заявка

Заявка на услуги

Мы свяжемся с Вами максимально оперативно

Битрикс файл bitrix/.settings.php

Битрикс файл bitrix/.settings.php

Секция 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'
      ),
),

В приведенном примере: class_name - пользовательский класс, наследуемый от \ExceptionHandlerLog.
Может быть не указан. 
В этом случае будет использоваться \Bitrix\Main\Diag\FileExceptionHandlerLog.
extension - расширение PHP, использовать можно только вместе с class_name.
required_file - включаемый файл. Используется только вместе с class_name.
settings - настройки для класса, указанного в 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?


Возврат к списку