Kiểm soát lỗi trong PHP (3)

0

Thiết lập bộ kiểm soát lỗi

Bộ kiểm soát lỗi mặc định trong ngôn ngữ lập trình PHP là nền tảng của mọi bộ kiểm soát lỗi. Chúng ta sẽ gán chức năng phía trên là bộ kiểm soát lỗi mặc định cho khoảng thời gian hoạt động của Script.

Bạn hoàn toàn có thể thay đổi bộ kiểm soát lỗi để áp dụng cho một vài lỗi đặc biệt nào đó, với cách này thì script có thể kiểm soát những lỗi khác nhau theo nhiều cách khác nhau. Tuy nhiên trong ví dụ này chúng ta sẽ sử dụng bộ kiểm soát lỗi tùy biến cho tất cả các lỗi:

kiem-soat-loi-php-6

Bởi vì chúng ta muốn chức năng tùy chọn để kiểm soát tất cả các lỗi, set_error_handler() chỉ cần duy nhất một tham số, tham số thứ hai có thể được thêm vào để xác nhận một mức độ lỗi.

Ví dụ

Test thử bộ kiểm soát lỗi này bằng cách thử xuất ra biến không tồn tại:

kiem-soat-loi-php-7

Kết quả của đoạn code phía trên sẽ tương tự như sau:

kiem-soat-loi-php-8

Xảy ra một lỗi

Trong một script mà người dùng có thể nhập vào dữ liệu, nó sẽ tạo ra cơ hội xảy ra nhiều lỗi khi mà có một dữ liệu nhập vào không hợp lệ. Trong PHP, nó được thực thi bởi chức năng trigger_error().

Ví dụ

Trong ví dụ này một lỗi xảy ra nếu như biến “test” lớn hơn 1

kiem-soat-loi-php-9

Kết quả của đoạn code trên sẽ như sau:

kiem-soat-loi-php-10

Một lỗi có thể phát sinh ở bất cứ nơi nào bạn chạy đoạn script, và bằng cách thêm một tham số thứ hai, bạn có thể xác định lỗi nào vừa xảy ra.

Những kiểu lỗi có thể xảy ra:

  • E_USER_ERROR
  • E_USER_WARNING
  • E_USER_NOTICE

Ví dụ

Trong ví dụ này, một lỗi E_USER_WARNING xảy ra nếu như biến “test” lớn hơn 1. Nếu một lỗi E_USER_WARNING xảy ra chúng tôi sẽ sử dụng bộ kiểm soát lỗi tùy biến và kết thúc script:

kiem-soat-loi-php-11

Kết quả:

kiem-soat-loi-php-12

Giờ thì bạn đã học được cách tạo ra lỗi và cách giải quyết nó rồi. Hãy cùng xem thêm phần Error Logging nhé.

Error Logging

Mặc định, PHP sẽ gửi một file log về lỗi tới hệ thống log của hệ thống hoặc một file, thiết lập của error_log thế nào là dựa vào những gì đã thiết đặt trong file php.ini. Bằng cách dùng chức năng error_log() bạn có thể gửi những log nào tới một file nào đó hoặc một điểm từ xa.

Gửi những thông điệp báo lỗi cho bạn bằng email có thể là cách tốt nhất để nhận được thông báo cho từng lỗi xác định.

Gửi thông điệp báo lỗi bằng email

Ở ví dụ sau đây chúng tôi sẽ gửi một email với 1 thông điệp báo lỗi và dừng script lại nếu có 1 lỗi nào đó xảy ra:

kiem-soat-loi-php-13

Kết quả của đoạn code trên:

kiem-soat-loi-php-14

Và email bạn nhận được từ đoạn code trên sẽ như sau:

kiem-soat-loi-php-15

Bạn không nên áp dụng nó với tất cả các lỗi. Những lỗi thông thường nên được lưu lại trong server bằng hệ thống ghi log mặc định của PHP.

 

Rate this post

Leave A Reply

End Ads -->