В этой главе мы рассмотрим обработку ошибок в Drupal для управления сообщениями об ошибках на сайте Drupal.
Обработка ошибок — это процесс обнаружения и поиска решений для ошибок. Это могут быть ошибки прикладного программирования или сообщения об ошибках.
Следующие шаги описывают, как управлять сообщениями об ошибках в Drupa —
Шаг 1 — Зайдите в Конфигурацию и нажмите Журнал и ошибки .
Шаг 2 — Страница регистрации и ошибок отобразится, как показано на следующем экране.
Ниже приведены подробные сведения о полях, показанных на предыдущем экране.
-
Отображаемые сообщения об ошибках — указывает сообщения об ошибках, которые будут отображаться на сайте 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».