Drupal - Xử lý lỗi

Trong chương này, chúng ta sẽ nghiên cứu về xử lý lỗi Drupal để quản lý thông báo lỗi trên trang Drupal.

Xử lý lỗi là một quá trình phát hiện và tìm ra giải pháp cho các lỗi. Nó có thể là lỗi ứng dụng lập trình hoặc lỗi có thể lây truyền.

Các bước sau đây mô tả cách quản lý thông báo lỗi trong Drupa:

Step 1 - Đi tới Configuration và bấm vào Logging and errors.

Step 2 - Sự Logging and errors trang sẽ được hiển thị như trong màn hình sau.

Sau đây là chi tiết của các trường như được thấy trong màn hình trước:

  • Error messages to display - Nó chỉ định các thông báo lỗi sẽ được hiển thị trên trang Drupal.

    • None - Tùy chọn này không hiển thị bất kỳ thông báo lỗi nào.

    • Errors and warnings - Tùy chọn này chỉ hiển thị các thông báo liên quan đến lỗi và cảnh báo.

    • All messages - Tùy chọn này chỉ định tất cả các loại thông báo lỗi như lỗi, cảnh báo, v.v. sẽ được hiển thị trên trang web.

  • Database log messages to keep - Nó chỉ ra số lượng tin nhắn tối đa được lưu trong nhật ký cơ sở dữ liệu.

Sử dụng Drupal _drupal_exception_handler ($exception)chức năng xử lý các lỗi trên trang web. Các lỗi này sẽ không nằm trong một khối try / catch. Tập lệnh sẽ không thực thi chức năng khi một trình xử lý ngoại lệ thoát.

Mã cho _drupal_exception_handler như sau -

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

Hàm phải được sử dụng trên mọi yêu cầu của Drupal. Hàm này có ở dòng 2328 trong tệpincludes/bootstrap.inc.

Có hai tham chiếu chuỗi tới _drupal_exception_handler nhu la_drupal_bootstrap_configuration() hiện diện trong bootstrap.inc tập tin và_drupal_get_last_callerhiện trong tệp error.inc. Cả hai tệp này đều có trong‘includes’ thư mục.