Drupal - 错误处理



在本章中,我们将学习关于 Drupal 错误处理,以管理 Drupal 站点上的错误消息。

错误处理是一个检测和查找错误解决方案的过程。它可以是编程应用程序错误或可通信错误。

以下步骤描述了如何在 Drupa 中管理错误消息:

步骤 1 - 转到配置并点击日志和错误

Drupal Error Handling

步骤 2 - 将显示日志和错误页面,如下面的屏幕截图所示。

Drupal Error Handling

以下是前面屏幕截图中字段的详细信息:

  • 要显示的错误消息 - 它指定要在 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 请求中使用。此函数位于文件includes/bootstrap.inc 的第 2328 行。

有两个字符串引用_drupal_exception_handler,例如_drupal_bootstrap_configuration() 存在于bootstrap.inc 文件中,以及_drupal_get_last_caller 存在于 errors.inc 文件中。这两个文件都位于“includes”文件夹中。

广告