Xử lý ngoại lệ là một cơ chế mạnh mẽ của PHP, được sử dụng để xử lý lỗi thời gian chạy [lỗi thời gian chạy được gọi là ngoại lệ]. Vì vậy, dòng chảy bình thường của ứng dụng có thể được duy trì
Mục đích chính của việc sử dụng xử lý ngoại lệ là để duy trì hoạt động bình thường của ứng dụng
Ngoại lệ là gì?
Một ngoại lệ là một kết quả không bị loại trừ của một chương trình, có thể được xử lý bởi chính chương trình đó. Về cơ bản, một ngoại lệ làm gián đoạn luồng bình thường của chương trình. Nhưng nó khác với lỗi vì ngoại lệ có thể xử lý được, còn lỗi thì chương trình không tự xử lý được
Nói cách khác, - "Một kết quả không mong muốn của chương trình là một ngoại lệ, có thể được xử lý bởi chính chương trình. " Ngoại lệ có thể được ném và bắt trong PHP
Tại sao cần Xử lý ngoại lệ?
PHP cung cấp một cơ chế xử lý ngoại lệ mạnh mẽ. Nó cho phép bạn xử lý các lỗi thời gian chạy như IOException, SQLException, ClassNotFoundException, v.v. Một ví dụ phổ biến nhất về xử lý ngoại lệ là - chia cho ngoại lệ bằng 0, đây là một ngoại lệ số học
Ghi chú. Xử lý ngoại lệ là cần thiết khi một ngoại lệ làm gián đoạn quá trình thực thi bình thường của chương trình hoặc ứng dụng
Xử lý ngoại lệ gần như giống nhau trong tất cả các ngôn ngữ lập trình. Nó thay đổi luồng bình thường của chương trình khi xảy ra một điều kiện lỗi cụ thể và điều kiện này được gọi là ngoại lệ. PHP cung cấp các từ khóa sau cho mục đích này
cố gắng -
Khối thử chứa mã có thể có ngoại lệ hoặc nơi có thể phát sinh ngoại lệ. Khi một ngoại lệ xảy ra bên trong khối thử trong thời gian chạy mã, nó sẽ bị bắt và giải quyết trong khối bắt. Khối thử phải được theo sau bởi khối bắt hoặc khối cuối cùng. Một khối thử có thể được theo sau bởi một khối tối thiểu và tối đa bất kỳ số lượng khối bắt nào
bắt lấy -
Khối catch chứa mã thực thi khi ném một ngoại lệ cụ thể. Nó luôn được sử dụng với một khối thử, không dùng một mình. Khi một ngoại lệ xảy ra, PHP sẽ tìm khối bắt phù hợp
ném -
Nó là một từ khóa được sử dụng để ném một ngoại lệ. Nó cũng giúp liệt kê tất cả các ngoại lệ mà hàm ném ra nhưng không tự xử lý
Hãy nhớ rằng mỗi lần ném phải có ít nhất một lần "bắt"
cuối cùng -
Khối cuối cùng chứa mã, được sử dụng cho hoạt động dọn dẹp trong PHP. Về cơ bản, nó thực thi mã thiết yếu của chương trình
Điều gì xảy ra khi một ngoại lệ được kích hoạt -
- Trạng thái hiện tại của mã được lưu
- Việc thực thi mã được chuyển sang chức năng xử lý ngoại lệ được xác định trước
- Tùy thuộc vào tình huống, trình xử lý có thể tạm dừng thực thi chương trình, tiếp tục thực thi từ trạng thái mã đã lưu hoặc tiếp tục thực thi mã từ một vị trí khác trong mã
Ưu điểm của Xử lý ngoại lệ so với Xử lý lỗi
Xử lý ngoại lệ là một cơ chế quan trọng trong PHP, có những ưu điểm sau so với xử lý lỗi -
Nhóm các loại lỗi -
Trong PHP, cả đối tượng cơ bản và đối tượng đều có thể được coi là ngoại lệ. Nó có thể tạo một hệ thống phân cấp các đối tượng ngoại lệ và nhóm các ngoại lệ trong các lớp và cũng có thể phân loại chúng theo loại của chúng
Giữ riêng việc xử lý lỗi và mã bình thường -
Trong xử lý lỗi truyền thống, khối if-else được sử dụng để xử lý lỗi. Nó làm cho mã không thể đọc được vì mã xử lý lỗi và điều kiện bị trộn lẫn. Trong khối try-catch, ngoại lệ tách biệt với mã và mã có thể đọc được
ví dụ
Tìm hiểu với sự trợ giúp của các ví dụ về cách xử lý ngoại lệ hoạt động trong PHP-
ví dụ 1
Hãy lấy một ví dụ để giải thích quy trình phổ biến của khối ném và thử bắt
đầu ra
Exception Message: Value must be less than 1
ví dụ 2. Tạo ngoại lệ tùy chỉnh
Bạn có thể tạo ngoại lệ do người dùng định nghĩa bằng cách mở rộng lớp Ngoại lệ. Xem mã bên dưới để tìm hiểu cách tạo ngoại lệ do người dùng xác định -
Một Lỗi được cho là đã xảy ra khi một đoạn mã trả về kết quả không mong muốn hoặc dừng đột ngột do một số mã không chính xác, ví dụ như chia cho 0 hoặc vòng lặp vô hạn, v.v.
Trong PHP, chúng ta có thể thiết lập cấu hình PHP để hiển thị hoặc ẩn thông báo lỗi trên trình duyệt
PHP cung cấp nhiều cách để xử lý lỗi,
- Xử lý lỗi trong mã bằng câu lệnh điều kiện hoặc hàm
die[]
- Sử dụng Trình xử lý lỗi tùy chỉnh
- Báo cáo lỗi PHP
Hãy bao gồm từng người trong số họ với các ví dụ
Sử dụng chức năng die[]
Hàm die[]
trong PHP được sử dụng để hiển thị bất kỳ thông báo nào và thoát khỏi tập lệnh hiện tại cùng một lúc. Do đó, khi một điều kiện lỗi được phát hiện, hàm die[]
có thể được sử dụng để thoát khỏi quá trình thực thi mã
Có thể xảy ra lỗi khi chúng ta cố gắng chia một số cho 0 hoặc cố mở một tệp không tồn tại, hãy lấy một ví dụ và xem cách chúng ta có thể sử dụng hàm die[]
hoặc câu lệnh điều kiện để xử lý các điều kiện lỗi
Đoạn code trên chúng ta sẽ nhận được thông báo Unable to open file noerror. txt trên màn hình, nếu không có tệp nào có tên noerror. txt tại vị trí đã cho
Hàm die[]
là bí danh của hàm
Bây giờ hãy xem cách chúng ta có thể sử dụng các câu điều kiện để xử lý các điều kiện lỗi. Kiểu xử lý lỗi này rất hữu ích khi chúng ta biết trước các tình huống có thể dẫn đến lỗi
Ví dụ, mã dưới đây sẽ dẫn đến lỗi
Cảnh báo. Chia cho số không
Trong tình huống như vậy, khi chúng ta biết điều kiện nào đó có thể dẫn đến lỗi, chúng ta có thể sử dụng câu lệnh điều kiện để xử lý trường hợp góc sẽ dẫn đến lỗi. Hãy sửa đoạn mã trên
Chia cho số không [0] không được phép
Như bạn có thể thấy trong đoạn mã trên, tình trạng lỗi được xử lý. Bây giờ mã của chúng tôi sẽ không hiển thị bất kỳ lỗi nào trên màn hình, thay vào đó, nó sẽ hiển thị một thông báo và thoát một cách duyên dáng
Sử dụng Trình xử lý lỗi tùy chỉnh
Trong PHP, chúng ta có thể sử dụng phương thức tùy chỉnh của mình để hiển thị bất kỳ thông báo nào hoặc thực thi bất kỳ mã nào khi xảy ra lỗi. Tất cả những gì chúng ta phải làm là đặt phương thức của mình làm trình xử lý lỗi mặc định cho PHP bằng cách sử dụng hàm
2Hãy lấy một ví dụ
Ối. Một cái gì đó bất ngờ xảy ra. Lý do có thể. Chia cho số 0 Chúng tôi đang nghiên cứu nó
Chúng ta có thể định nghĩa hàm riêng của mình giống như chúng ta đã làm ở trên với các đối số
3 và 4 và có thể xử lý chúng theo ý muốn. Chúng tôi có thể hiển thị thông báo tùy chỉnh, đăng nhập lỗi trong cơ sở dữ liệu, gửi email cho nhà phát triển báo cáo lỗi, v.v.Báo cáo lỗi PHP
PHP cung cấp cơ chế báo cáo lỗi mặc định có thể được sử dụng để hiển thị thông báo trên màn hình khi xảy ra lỗi
Xử lý lỗi được thực hiện để xử lý các lỗi trong mã một cách duyên dáng và cung cấp trải nghiệm người dùng tốt hơn cho người dùng cuối
Chúng ta có thể sử dụng hàm PHP
5 để đặt lỗi nào sẽ hiển thị và lỗi nào sẽ ẩnSau đây là cú pháp cho chức năng này
Giá trị cho biến
6 xác định lỗi nào sẽ hiển thị và lỗi nào cần ẩn, nếu chúng tôi không cung cấp bất kỳ giá trị nào cho nó, báo cáo lỗi sẽ được đặt thành mặc địnhSau đây là các giá trị mà chúng tôi có thể cung cấp để đặt các mức lỗi khác nhau
Cấp độ báo cáoMô tảE_WARNINGChỉ hiển thị các thông báo cảnh báo và không dừng việc thực thi tập lệnh. E_NOTICEHiển thị thông báo xảy ra trong quá trình thực thi mã bình thường. E_USER_ERRORHiển thị lỗi do người dùng tạo i. e trình xử lý lỗi tùy chỉnh. E_USER_WARNINGHiển thị thông báo cảnh báo do người dùng tạo. E_USER_NOTICEHiển thị thông báo do người dùng tạo. E_RECOVERABLE_ERRORHiển thị các lỗi không nghiêm trọng. E_ALLHiển thị tất cả lỗi và cảnh báoĐiều này đưa chúng ta đến kết luận về xử lý lỗi trong PHP. Trong hướng dẫn tiếp theo, chúng ta sẽ tìm hiểu về Xử lý ngoại lệ