Учебники

Drupal — Обработка ошибок

В этой главе мы рассмотрим обработку ошибок в Drupal для управления сообщениями об ошибках на сайте Drupal.

Обработка ошибок — это процесс обнаружения и поиска решений для ошибок. Это могут быть ошибки прикладного программирования или сообщения об ошибках.

Следующие шаги описывают, как управлять сообщениями об ошибках в Drupa —

Шаг 1 — Зайдите в Конфигурацию и нажмите Журнал и ошибки .

Обработка ошибок Drupal

Шаг 2 — Страница регистрации и ошибок отобразится, как показано на следующем экране.

Обработка ошибок Drupal

Ниже приведены подробные сведения о полях, показанных на предыдущем экране.

  • Отображаемые сообщения об ошибках — указывает сообщения об ошибках, которые будут отображаться на сайте Drupal.

    • Нет — эта опция не отображает сообщение об ошибке.

    • Ошибки и предупреждения — эта опция отображает только сообщения, связанные с ошибками и предупреждениями.

    • Все сообщения — этот параметр определяет все типы сообщений об ошибках, таких как ошибки, предупреждения и т. Д., Которые должны отображаться на сайте.

  • Сохраняемые сообщения журнала базы данных — указывает максимальное количество сообщений, которые должны храниться в журнале базы данных.

Отображаемые сообщения об ошибках — указывает сообщения об ошибках, которые будут отображаться на сайте Drupal.

Нет — эта опция не отображает сообщение об ошибке.

Ошибки и предупреждения — эта опция отображает только сообщения, связанные с ошибками и предупреждениями.

Все сообщения — этот параметр определяет все типы сообщений об ошибках, таких как ошибки, предупреждения и т. Д., Которые должны отображаться на сайте.

Сохраняемые сообщения журнала базы данных — указывает максимальное количество сообщений, которые должны храниться в журнале базы данных.

Drupal использует функцию _drupal_exception_handler ($ exception) для обработки ошибок на сайте. Эти ошибки не будут заключены в блок try / catch. Скрипт не будет выполнять функцию при выходе из обработчика исключений.

Код для _drupal_exception_handler выглядит следующим образом:

function _drupal_exception_handler($exception) {
   require_once DRUPAL_ROOT . '/includes/errors.inc';
   try {
      // display the error message in the log and return the error messages to the user
      _drupal_log_error(_drupal_decode_exception($exception), TRUE);
   }
   catch (Exception $excp2) {
      // Another uncaught exception was thrown while handling the first one.
      // If we are displaying errors, then do so with no possibility of 
         a further uncaught exception being thrown.
         
      if (error_displayable()) {
         print '<h1>Additional uncaught exception thrown while handling exception.</h1>';
         print '<h2>Original</h2> <p>'. _drupal_render_exception_safe($exception).'</p>';
         print '<h2>Additional</h2> <p>'. _drupal_render_exception_safe($excp2).'</p><hr/>';
      }
   }
}

Функция должна использоваться при каждом запросе Drupal. Эта функция присутствует в строке 2328 в файле includes / bootstrap.inc .

Есть две строковые ссылки на _drupal_exception_handler, такие как _drupal_bootstrap_configuration (), присутствующие в файле bootstrap.inc, и _drupal_get_last_caller, присутствующие в файле errors.inc. Оба этих файла присутствуют в папке « include».