2013-03-05 2 views
1

Когда я целенаправленно бросить ошибку PHP внутри встроенного кода PHP в модуле фильтра в PHP, Drupal отображает сообщение The website encountered an unexpected error. Please try again later.ошибки с модулем PHP фильтра

Мы хотели бы отправить пользователь с непредвиденными ошибками программиста ошибки чтобы они не приземлялись на страницу с мертвой ошибкой без уведомления нас, поэтому я пытаюсь выяснить, как перехватить это в Drupal. Я пробовал поиск в Drupal, где эта строка ошибок выводится, без везения.

Как именно Drupal обрабатывает ошибки, возникающие внутри встроенного PHP-кода, или более непосредственно: как я могу перенаправить его на другую страницу или поймать ошибку по-другому?

Благодаря

ответ

0

Это специфическая ошибка приходит в результате Drupal явно устанавливая обработчик исключений PHP для пользовательской функции (сделано в _drupal_bootstrap_configuration()).

Сам обработчик исключений - _drupal_exception_handler(), который вызывает _drupal_log_error(), и именно там создается страница с ошибкой.

Я никогда не пробовал, но я считаю, что вам удастся реализовать hook_boot() и использовать set_exception_handler(), чтобы обеспечить собственную реализацию основных функций Drupal для темы, которая является страницей ошибок по-разному.

Это может показаться немного длинным, но так как _drupal_error_log() не вызывает никаких крючков (это, вероятно, слишком рано для этого, так или иначе) Я не вижу другого способа сделать это без редактирования основных файлов ,

+0

Это помогло мне определить местонахождение сообщения об ошибке. Благодарю. – georgedyer

Смежные вопросы