Đang thực hiện
Tên đăng nhập
Mật khẩu
 
Hoặc đăng nhập bằng:
Nhập lại mật khẩu

Trang chủ Tin tổng hợp
Tin tổng hợp

PHP - Xử lý lỗi và ngoại lệ

Cập nhật: 12/06/2019 Lượt xem: 75
Xử lý lỗi là quá trình bắt lỗi được đưa ra bởi chương trình của bạn và sau đó thực hiện hành động thích hợp. Nếu bạn xử lý lỗi đúng cách thì có thể dẫn đến nhiều hậu quả không lường trước được.
Xử lý lỗi là quá trình bắt lỗi được đưa ra bởi chương trình của bạn và sau đó thực hiện hành động thích hợp. Nếu bạn xử lý lỗi đúng cách thì có thể dẫn đến nhiều hậu quả không lường trước được.
 
Học lập trình PHP
PHP - Error & Exception Handling

 

Nó rất đơn giản trong PHP để xử lý một lỗi.
 

Sử dụng hàm die ()

 

Trong khi viết chương trình PHP của bạn, bạn nên kiểm tra tất cả các điều kiện lỗi có thể trước khi tiếp tục và thực hiện hành động thích hợp khi được yêu cầu.

Hãy thử làm theo ví dụ mà không có tệp /tmp/test.xt và với tệp này.


sử dụng hàm die

Bằng cách này bạn có thể viết một mã hiệu quả. Sử dụng kỹ thuật trên, bạn có thể dừng chương trình của mình bất cứ khi nào nó bị lỗi và hiển thị thông điệp thân thiện và có ý nghĩa hơn với người dùng.
 

Xác định chức năng xử lý lỗi tùy chỉnh

 

Bạn có thể viết chức năng của riêng bạn để xử lý bất kỳ lỗi nào. PHP cung cấp cho bạn một khung để xác định chức năng xử lý lỗi.


>> Khóa học lập trình PHP được NIIT - ICT Hà Nội kết hợp với Doanh nghiệp nhằm đào tạo cũng như tìm kiếm tài năng về nhân sự cho công ty về mảng lập trình. Nhanh tay đăng ký cơ hội việc làm liền tay <<



Hàm này phải có khả năng xử lý tối thiểu hai tham số (mức lỗi và thông báo lỗi) nhưng có thể chấp nhận tối đa năm tham số (tùy chọn: tệp, số dòng và bối cảnh lỗi.

 

Cú pháp


cú pháp hàm die

 
Không. Mô tả về Thông Số
1

error_level

Bắt buộc - Chỉ định mức báo cáo lỗi cho lỗi do người dùng xác định. Phải là một số giá trị.

2

error_message

Bắt buộc - Chỉ định thông báo lỗi cho lỗi do người dùng xác định

3

error_file

Tùy chọn - Chỉ định tên tệp trong đó xảy ra lỗi

4

error_line

Tùy chọn - Chỉ định số dòng trong đó xảy ra lỗi

5

error_context

Tùy chọn - Chỉ định một mảng chứa mọi biến và giá trị của chúng được sử dụng khi xảy ra lỗi

 

Mức độ lỗi có thể


Các mức báo cáo lỗi này là các loại lỗi khác nhau mà trình xử lý lỗi do người dùng xác định có thể được sử dụng. Những giá trị taxi được sử dụng kết hợp bằng cách sử dụng | nhà điều hành.
 
1

.E_ERROR

Lỗi thời gian chạy nghiêm trọng. Việc thực thi kịch bản bị tạm dừng

1
2

E_WARNING

Lỗi thời gian chạy không gây tử vong. Việc thực thi kịch bản không bị dừng lại

2
3

E_PARSE

Biên dịch lỗi phân tích thời gian. Lỗi phân tích chỉ nên được tạo bởi trình phân tích cú pháp.

4
4

E_NOTICE

Thông báo thời gian chạy. Kịch bản tìm thấy một cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi chạy một kịch bản bình thường

8
5

E_CORE_ERROR

Lỗi nghiêm trọng xảy ra trong quá trình khởi động ban đầu của PHP.

16
6

E_CORE_WARNING

Lỗi thời gian chạy không gây tử vong. Điều này xảy ra trong quá trình khởi động ban đầu của PHP.

32
7

E_USER_ERROR

Lỗi nghiêm trọng do người dùng tạo ra. Điều này giống như một E_ERROR được lập trình viên thiết lập bằng cách sử dụng hàm PHP trigger_error ()

256
8

E_USER_WARNING

Cảnh báo không gây tử vong do người dùng tạo ra. Điều này giống như một E_WARNING được lập trình viên thiết lập bằng cách sử dụng hàm PHP trigger_error ()

512
9

E_USER_NOTICE

Thông báo do người dùng tạo. Đây giống như một E_NOTICE được lập trình viên thiết lập bằng cách sử dụng hàm PHP trigger_error ()

1024
10

E_STRICT

Thông báo thời gian chạy. Cho phép để PHP đề xuất các thay đổi đối với mã của bạn, điều này sẽ đảm bảo khả năng tương tác tốt nhất và khả năng tương thích về phía trước của mã của bạn.

2048
11

E_RECOVERABLE_ERROR

Lỗi nghiêm trọng có thể bắt được. Điều này giống như một E_ERROR nhưng có thể bị bắt bởi một tay cầm do người dùng xác định (xem thêm set_error_handler ())

4096
12

E_ALL

Tất cả các lỗi và cảnh báo, ngoại trừ cấp E_STRICT (E_STRICT sẽ là một phần của E_ALL kể từ PHP 6.0)

8191

Tất cả các mức lỗi trên có thể được đặt bằng cách sử dụng hàm thư viện tích hợp PHP sau trong đó mức taxi là bất kỳ giá trị nào được xác định trong bảng trên.


hàm thư viện

Sau đây là cách bạn có thể tạo một chức năng xử lý lỗi.


chức năng xử lý lỗi

Khi bạn xác định trình xử lý lỗi tùy chỉnh của mình, bạn cần đặt nó bằng hàm thư viện có sẵn hàm set_error_handler . Bây giờ hãy xem xét ví dụ của chúng ta bằng cách gọi một hàm không tồn tại.


gọi hàm không tồn tại
 

Xử lý ngoại lệ

 

PHP 5 có một mô hình ngoại lệ tương tự như các ngôn ngữ lập trình khác. Các ngoại lệ rất quan trọng và cung cấp khả năng kiểm soát tốt hơn đối với việc xử lý lỗi.

Hãy giải thích có từ khóa mới liên quan đến ngoại lệ.
 

Thử - Một hàm sử dụng một ngoại lệ sẽ nằm trong khối "thử". Nếu ngoại lệ không kích hoạt, mã sẽ tiếp tục như bình thường. Tuy nhiên, nếu ngoại lệ kích hoạt, một ngoại lệ là "ném".


Ném - Đây là cách bạn kích hoạt một ngoại lệ. Mỗi lần "ném" phải có ít nhất một lần "bắt".


Bắt - Một khối "bắt" lấy một ngoại lệ và tạo một đối tượng chứa thông tin ngoại lệ.

 

Khi một ngoại lệ được đưa ra, mã theo câu lệnh sẽ không được thực thi và PHP sẽ cố gắng tìm khối bắt phù hợp đầu tiên. Nếu không bắt được ngoại lệ, Lỗi nghiêm trọng của PHP sẽ được đưa ra với "Ngoại lệ chưa được xử lý ...

Một ngoại lệ có thể được ném và bắt ("bắt") trong PHP. Mã có thể được bao quanh trong một khối thử.

Mỗi lần thử phải có ít nhất một khối bắt tương ứng. Nhiều khối bắt có thể được sử dụng để bắt các lớp ngoại lệ khác nhau.
Các ngoại lệ có thể được ném (hoặc ném lại) trong một khối bắt.

 

Thí dụ

Sau đây là đoạn mã, sao chép và dán mã này vào một tệp và xác minh kết quả.


mã sao chép và dán mã vào tệp

Trong ví dụ trên, hàm $ e-> getMessage được sử dụng để nhận thông báo lỗi. Có các hàm sau có thể được sử dụng từ lớp Exception.
  • getMessage () - thông báo ngoại lệ
  • getCode () - mã ngoại lệ
  • getFile () - tên tệp nguồn
  • getLine () - dòng nguồn
  • mảng getTrace () - n của backtrace ()
  • getTraceAsString () - chuỗi theo dõi được hình thành



Tạo Trình xử lý ngoại lệ tùy chỉnh

 
Bạn có thể xác định xử lý ngoại lệ tùy chỉnh của riêng bạn. Sử dụng chức năng sau để đặt chức năng xử lý ngoại lệ do người dùng xác định.


tạo trình xử lý ngoại lệ tùy chỉnh

Ở đây ex_handler là tên của hàm được gọi khi xảy ra ngoại lệ chưa được lưu. Hàm này phải được xác định trước khi gọi set_exception_handler ().


Thí dụ


ví dụ hàm được xác định set_exception_handler
 

Kiểm tra bộ đầy đủ các hàm xử lý lỗi tại Các hàm xử lý lỗi PHP

Tư vấn viên 1: Nguyễn Thu Huyền
Tư vấn viên 2: Thu Huyền
Tuyển sinh lập trình viên quốc tế - MMS new vision
Khóa học C&B Excel - Trần Văn Hải