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.