Drupal - Gestion des erreurs

Dans ce chapitre, nous étudierons la gestion des erreurs Drupal pour la gestion des messages d'erreur sur le site Drupal.

La gestion des erreurs est un processus de détection et de recherche des résolutions des erreurs. Il peut s'agir d'erreurs d'application de programmation ou d'erreurs transmissibles.

Les étapes suivantes décrivent comment gérer les messages d'erreur dans Drupa -

Step 1 - Aller à Configuration et cliquez Logging and errors.

Step 2 - Le Logging and errors La page s'affichera comme indiqué dans l'écran suivant.

Voici les détails des champs comme vu dans l'écran précédent -

  • Error messages to display - Il spécifie les messages d'erreur à afficher sur le site Drupal.

    • None - Cette option n'affiche aucun message d'erreur.

    • Errors and warnings - Cette option n'affiche que les messages liés aux erreurs et aux avertissements.

    • All messages - Cette option spécifie tous les types de messages d'erreur tels que les erreurs, les avertissements, etc. à afficher sur le site.

  • Database log messages to keep - Il indique le nombre maximum de messages à conserver dans le journal de la base de données.

Drupal utilise _drupal_exception_handler ($exception)fonction pour gérer les erreurs sur le site. Ces erreurs ne seront pas incluses dans un bloc try / catch. Le script n'exécute pas la fonction lorsqu'un gestionnaire d'exceptions se termine.

Le code pour _drupal_exception_handler est comme suit -

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/>';
      }
   }
}

La fonction doit être utilisée sur chaque requête Drupal. Cette fonction est présente à la ligne 2328 du fichierincludes/bootstrap.inc.

Il existe deux références de chaîne à _drupal_exception_handler tel que_drupal_bootstrap_configuration() présent dans le bootstrap.inc fichier et_drupal_get_last_callerprésent dans le fichier errors.inc. Ces deux fichiers sont présents dans le‘includes’ dossier.