Drupal - obsługa błędów
W tym rozdziale zajmiemy się obsługą błędów Drupala w zarządzaniu komunikatami o błędach w witrynie Drupal.
Obsługa błędów to proces wykrywania i znajdowania rozwiązań dla błędów. Mogą to być błędy programistyczne lub błędy komunikowalne.
Poniższe kroki opisują, jak zarządzać komunikatami o błędach w Drupie -
Step 1 - Idź do Configuration i kliknij Logging and errors.
Step 2 - The Logging and errors Strona zostanie wyświetlona, jak pokazano na poniższym ekranie.
Poniżej znajdują się szczegóły pól, jak pokazano na poprzednim ekranie -
Error messages to display - Określa komunikaty o błędach, które mają być wyświetlane w witrynie Drupal.
None - Ta opcja nie wyświetla żadnego komunikatu o błędzie.
Errors and warnings - Ta opcja wyświetla tylko komunikaty dotyczące błędów i ostrzeżeń.
All messages - Ta opcja określa wszystkie typy komunikatów o błędach, takich jak błędy, ostrzeżenia itp., Które mają być wyświetlane w witrynie.
Database log messages to keep - Wskazuje maksymalną liczbę komunikatów, które mają być przechowywane w dzienniku bazy danych.
Drupal używa _drupal_exception_handler ($exception)funkcję obsługi błędów w witrynie. Te błędy nie będą zawarte w bloku try / catch. Skrypt nie wykona funkcji po zakończeniu obsługi wyjątku.
Kod dla _drupal_exception_handler wygląda następująco -
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/>';
}
}
}
Ta funkcja musi być używana przy każdym żądaniu Drupala. Ta funkcja jest obecna w wierszu 2328 w plikuincludes/bootstrap.inc.
Istnieją dwa odniesienia do łańcucha _drupal_exception_handler Jak na przykład_drupal_bootstrap_configuration() obecny w bootstrap.inc plik i_drupal_get_last_callerobecny w pliku errors.inc. Oba te pliki są obecne w‘includes’ teczka.