Drupal - 错误处理
在本章中,我们将研究 Drupal 错误处理,以便管理 Drupal 站点上的错误消息。
错误处理是检测和找到错误解决方案的过程。它可以是编程应用程序错误或可传达的错误。
以下步骤描述了如何在 Drupa 中管理错误消息 −
步骤 1 − 转到 配置 并单击 日志记录和错误。
步骤 2 − 日志记录和错误页面将显示,如以下屏幕所示。
以下是上一个屏幕中显示的字段的详细信息 −
要显示的错误消息 − 它指定要在 Drupal 站点上显示的错误消息。
无 − 此选项不显示任何错误消息。
错误和警告 − 此选项仅显示与错误和警告相关的消息。
所有消息 −此选项指定要在站点上显示的所有类型的错误消息,例如错误、警告等。
要保留的数据库日志消息 − 它表示要保留在数据库日志中的最大消息数。
Drupal 使用 _drupal_exception_handler ($exception) 函数来处理站点上的错误。这些错误不会包含在 try/catch 块中。当异常处理程序退出时,脚本不会执行该函数。
_drupal_exception_handler 的代码如下 −
function _drupal_exception_handler($exception) { require_once DRUPAL_ROOT . '/includes/errors.inc'; try { // 在日志中显示错误消息并将错误消息返回给用户 _drupal_log_error(_drupal_decode_exception($exception), TRUE); } catch (Exception $excp2) { // 处理第一个异常时引发了另一个未捕获的异常。 // 如果我们显示错误,则不会出现 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 的字符串引用,例如 bootstrap.inc 文件中的 _drupal_bootstrap_configuration() 和 errors.inc 文件中的 _drupal_get_last_caller。这两个文件都位于 'includes' 文件夹中。