Computer >> Máy Tính >  >> Lập trình >> PHP

Lỗi ngoại lệ PHP

Giới thiệu

Lớp Exception của PHP triển khai Có thể ném giao diện. ErrorException lớp mở rộng Ngoại lệ lớp. ErrorException có nghĩa là được ném ra một cách rõ ràng khi bạn muốn bắt và xử lý các lỗi mà nếu không sẽ bị bỏ qua, chẳng hạn như Thông báo hoặc Cảnh báo.

Lõi PHP bao gồm các hằng số lỗi được xác định trước sau đây

Giá trị Không đổi Mô tả
1 E_ERROR Lỗi thời gian chạy nghiêm trọng.
2 E_WARNING Cảnh báo thời gian chạy (lỗi không nghiêm trọng).
4 E_PARSE Lỗi phân tích cú pháp thời gian biên dịch.
8 E_NOTICE Thông báo thời gian chạy.
16 E_CORE_ERROR Các lỗi nghiêm trọng xảy ra trong quá trình khởi động ban đầu của PHP.
32 E_CORE_WARNING Cảnh báo (lỗi không nghiêm trọng) xảy ra trong quá trình khởi động ban đầu của PHP.
64 E_COMPILE_ERROR Lỗi thời gian biên dịch nghiêm trọng.
128 E_COMPILE_WARNING Cảnh báo thời gian biên dịch (lỗi không nghiêm trọng).
256 E_USER_ERROR Thông báo lỗi do người dùng tạo.
512 E_USER_WARNING Thông báo cảnh báo do người dùng tạo.
1024 E_USER_NOTICE Thông báo thông báo do người dùng tạo.
2048 E_STRICT If Enabled PHP đề xuất các thay đổi đối với mã của bạn để đảm bảo khả năng tương tác và khả năng tương thích chuyển tiếp của mã của bạn.
4096 E_RECOVERABLE_ERROR Lỗi nghiêm trọng có thể bắt được.
8192 E_DEPRECATED Thông báo thời gian chạy.
16384 E_USER_DEPRECATED Thông báo cảnh báo do người dùng tạo.
32767 E_ALL Tất cả các lỗi và cảnh báo, E_STRICT

Ngoài các thuộc tính và phương thức được kế thừa từ lớp Exception, lớp ErrorException giới thiệu một thuộc tính và một phương thức như sau -

protected int severity ;
final public getSeverity ( void ) : int

Mức độ nghiêm trọng của ngoại lệ được biểu thị bằng số nguyên liên quan đến loại lỗi trong bảng trên

Ví dụ về ErrorException

Trong tập lệnh sau, một hàm do người dùng xác định errhandler được đặt làm Trình xử lý lỗi với set_error_handler () hàm số. Nó ném ErrorException khi gặp phải lỗi nghiêm trọng trong trường hợp không tìm thấy tệp để đọc.

Ví dụ

<?php
function errhandler($severity, $message, $file, $line) {
   if (!(error_reporting() & $severity)) {
      echo "no error";
      return;
   }
   throw new ErrorException("Fatal Error:No such file or directory", 0, E_ERROR);
}
set_error_handler("errhandler");
/* Trigger exception */
try{
   $data=file_get_contents("nofile.php");
   echo $data;
}
catch (ErrorException $e){
   echo $e->getMessage();
}
?>

Ví dụ trên hiển thị kết quả sau

Đầu ra

Fatal Error:No such file or directory