Ngoại lệ là sự gián đoạn luồng thực thi chương trình bình thường do kết quả không mong muốn từ chương trình. Các ngoại lệ về cơ bản giống như các lỗi lập trình điển hình. Tuy nhiên, không giống như các lỗi tiêu chuẩn, các ngoại lệ có thể được xử lý bởi chính chương trình
Mục lục
điều kiện tiên quyết
Một người đọc nên có kiến thức trước về những điều sau đây để làm theo cùng với bài viết này
- Sự hiểu biết của người mới bắt đầu về ngôn ngữ lập trình PHP
- Sự hiểu biết của người mới bắt đầu về lập trình nói chung
Giới thiệu về xử lý ngoại lệ
Xử lý ngoại lệ là các lỗi xử lý xảy ra trong thời gian chạy chương trình và thường giống nhau trong tất cả các chương trình. Khi xảy ra lỗi, xử lý ngoại lệ sẽ thay đổi luồng chương trình. Những lỗi này thường được gọi là ngoại lệ
Các từ khóa sau được sử dụng để xử lý các ngoại lệ trong PHP
cố gắng
Đây là khối nơi mã có khả năng có ngoại lệ được nhập. Nếu mã có ngoại lệ trong thời gian chạy, ngoại lệ đó sẽ bị bắt và sửa trong khối bắt.
3 thường được sử dụng với khối
4 hoặc khối
5. Khối try thường được sử dụng cùng với một hoặc nhiều khối catch trong một chương trìnhnắm lấy
Bất cứ khi nào một ngoại lệ được ném vào
3 của chương trình PHP, một mã trong
0 sẽ được thực thi để cố gắng xử lý ngoại lệ đó.
0 không thể tự tồn tại. Thay vào đó, nó hoạt động cùng với
3phi
Từ khóa ném được sử dụng để ném ngoại lệ trong chương trình PHP. Nó cũng cho phép liệt kê tất cả các ngoại lệ được đưa ra bởi một chức năng cụ thể và không thể xử lý. Từ khóa ném không thể được sử dụng nếu không có
0cuối cùng
4 được sử dụng trong hoạt động dọn dẹp PHP. Khối này chứa lõi của mã và chịu trách nhiệm thực thi mã. Khối này có thể được sử dụng như một
0 và luôn được thực thi ngay cả khi một ngoại lệ không được xử lýDưới đây là biểu diễn sơ đồ về luồng sự kiện trong quá trình xử lý ngoại lệ
Sự cố khi một ngoại lệ được kích hoạt
Bất cứ khi nào một ngoại lệ được kích hoạt trong thời gian chạy chương trình, các sự kiện sau sẽ xảy ra
- Mã hiện tại được lưu
- Việc thực thi mã được chuyển giao cho một chức năng xử lý ngoại lệ thường được xác định trước
- Sau đó, chức năng xử lý ngoại lệ sẽ tiến hành tiếp tục thực thi mã đã lưu, bắt đầu thực thi từ một vị trí khác trong mã hoặc thậm chí kết thúc hoàn toàn quá trình thực thi của chương trình. Quyết định này được đưa ra dựa trên bản chất của ngoại lệ
Tại sao sử dụng xử lý ngoại lệ thay vì xử lý lỗi?
Xử lý ngoại lệ có những ưu điểm sau so với xử lý lỗi
- Nhóm loại lỗi. Xử lý ngoại lệ cho phép các lỗi được nhóm thành các lớp và cũng phân loại chúng thành các loại. Điều này không thể đạt được với xử lý lỗi thông thường
- Tách mã xử lý lỗi khỏi mã thông thường, Xử lý ngoại lệ bằng cách sử dụng try…catch giúp mã chương trình tách biệt với mã xử lý lỗi do đó làm cho mã rõ ràng và dễ đọc
Các ngoại lệ có thể được xử lý theo nhiều cách khác nhau và được thảo luận bên dưới
Các phương pháp xử lý ngoại lệ
1. Sử dụng các ngoại lệ cơ bản để xử lý lỗi
Điều này liên quan đến việc sử dụng các khối
6 để xử lý các ngoại lệ mỗi khi một ngoại lệ được đưa vào mã chương trình. Đôi khi một ngoại lệ được ném ra nhưng không bị bắt; Dưới đây là một ví dụ về mã không bắt được ngoại lệ và đầu ra là lỗi
Đoạn mã trên đưa ra thông báo lỗi vì ngoại lệ đã được đưa ra, nhưng khối catch chưa được đưa vào mã. Do đó, khối thử không thể tồn tại nếu không có khối bắt
Để tránh lỗi được minh họa ở trên, nên sử dụng các khối chính xác trong mã như hình bên dưới
Đoạn mã trên đưa ra một ngoại lệ và bắt nó bằng cách sử dụng các khối thử và bắt thành công
2. Tạo một lớp ngoại lệ tùy chỉnh đặc biệt
Điều này liên quan đến việc tạo một lớp tùy chỉnh với các chức năng có thể được gọi trong trường hợp xảy ra ngoại lệ. Lớp ngoại lệ tùy chỉnh này dự kiến sẽ mượn các thuộc tính từ lớp ngoại lệ của PHP cùng với các chức năng được thêm vào khác
Dưới đây là một minh họa mã về cách một lớp ngoại lệ có thể được tạo ra
________số 8
3. Sử dụng nhiều trường hợp ngoại lệ
Điều này liên quan đến việc sử dụng nhiều lớp xử lý ngoại lệ để kiểm tra nhiều trường hợp ngoại lệ
Dưới đây là một minh họa mã của nhiều trường hợp ngoại lệ được sử dụng
Đoạn mã trên được sử dụng để kiểm tra hai điều kiện và các ngoại lệ sẽ được đưa ra nếu bất kỳ điều kiện nào không được đáp ứng
4. Ném lại ngoại lệ
Điều này xảy ra khi có nhu cầu xử lý một ngoại lệ theo một cách khác với cách xử lý ngoại lệ tiêu chuẩn. Do đó, một ngoại lệ được ném lần thứ hai trong khối bắt
Dưới đây là một minh họa mã của việc ném lại ngoại lệ
05. Sử dụng một tập hợp các hàm xử lý ngoại lệ cấp cao nhất
Đây là một cách xử lý các ngoại lệ chưa được phát hiện. Hàm do người dùng định nghĩa
7 được sử dụng để đạt được điều này, như thể hiện trong hình minh họa mã bên dưới
2Phần kết luận
Xử lý ngoại lệ đang trở thành một ngôi sao đang lên thay vì xử lý lỗi. Với vô số lợi thế và vô số khả năng, việc xử lý ngoại lệ dường như là tương lai của việc gỡ lỗi mã trong PHP