× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Cách xử lý ngoại lệ trong PHP nhanh chóng, hiệu quả

10/08/2023 01:25

Trong bài viết này, cùng chúng tôi tìm hiểu Cách xử lý ngoại lệ trong PHP nhanh chóng, hiệu quả trong quá trình xử lý dự án

Đôi khi sai sót là không thể tránh khỏi. Giống như nếu một cái gì đó hoàn toàn không thể đoán trước xảy ra.

Nhưng nhiều lần, chúng ta có thể suy nghĩ trước và viết mã có thể chặn lỗi và làm điều gì đó hợp lý khi điều này xảy ra. Như hiển thị thông báo lỗi hữu ích cho người dùng hoặc thử giải pháp thay thế.

Chúng tôi làm như vậy bằng cách sử dụng ngoại lệ .

Các ngoại lệ được sử dụng để làm cho chúng tôi, các nhà phát triển, nhận thức được một vấn đề.

Chúng tôi gói một số mã có khả năng đưa một ngoại lệ vào một trykhối và chúng tôi có một catchkhối ngay sau đó. Khối catch đó sẽ được thực thi nếu có một ngoại lệ trong khối try:

try {
  //do something
} catch (Throwable $e) {
  //we can do something here if an exception happens
}

Lưu ý rằng chúng tôi có một Exceptionđối tượng $eđược chuyển đến catchkhối và chúng tôi có thể kiểm tra đối tượng đó để có thêm thông tin về ngoại lệ, như sau:

try {
  //do something
} catch (Throwable $e) {
  echo $e->getMessage();
}

Hãy xem một ví dụ.

Giả sử rằng tôi vô tình chia một số cho 0:

echo 1 / 0;

Điều này sẽ gây ra một lỗi nghiêm trọng và chương trình bị tạm dừng trên dòng đó:

Kết thúc hoạt động trong khối thử và in thông báo lỗi trong khối bắt, chương trình kết thúc thành công, cho tôi biết sự cố:

Kết thúc hoạt động trong khối thử và in thông báo lỗi trong khối bắt, chương trình kết thúc thành công, cho tôi biết sự cố:

Tất nhiên đây là một ví dụ đơn giản nhưng bạn có thể thấy lợi ích: Tôi có thể ngăn chặn vấn đề.

Mỗi ngoại lệ có một lớp khác nhau. Ví dụ: chúng tôi có thể nắm bắt điều này DivisionByZeroErrorvà điều này cho phép tôi lọc các sự cố có thể xảy ra và xử lý chúng theo cách khác.

Cuối cùng, tôi có thể tóm tắt mọi lỗi có thể ném được, như thế này:

try {
  echo 1 / 0;
} catch (DivisionByZeroError $e) {
  echo 'Ooops I divided by zero!';
} catch (Throwable $e) {
  echo $e->getMessage();
}

 

Source: https://www.freecodecamp.org/news/the-php-handbook/#how-to-handle-exceptions-in-php