Các ngoại lệ trong PHP là gì?

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ình

nắ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


3

phi

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ó



0

cuố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

  1. Mã hiện tại được lưu
  2. 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
  3. 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ệ



0

5. 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



2

Phầ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

Có bao nhiêu loại ngoại lệ trong PHP?

PHP cung cấp 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.

Làm cách nào để sử dụng ngoại lệ trong PHP?

Để tạo trình xử lý ngoại lệ tùy chỉnh, bạn phải tạo một lớp đặc biệt với các hàm có thể được gọi khi có ngoại lệ xảy ra trong PHP . Lớp phải là phần mở rộng của lớp ngoại lệ. Lớp ngoại lệ tùy chỉnh kế thừa các thuộc tính từ lớp ngoại lệ của PHP và bạn có thể thêm các chức năng tùy chỉnh vào đó.

Ngoại lệ và ví dụ là gì?

Một sự kiện xảy ra trong quá trình thực thi chương trình làm gián đoạn luồng hướng dẫn thông thường được gọi là ngoại lệ. Ví dụ. khoảng trống tĩnh công khai Chính []

giải thích xử lý ngoại lệ trong PHP là gì?

Một ngoại lệ có thể được ném và bị 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 loại 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

Chủ Đề