Hướng dẫn dùng php catch trong PHP

Các hàm trong PHP chủ yếu sử dụng thông báo lỗi, chỉ những phần mở rộng hướng đối tượng hiện đại mới sử dụng ngoại lệ. Tuy nhiên thì các lỗi có thể được chuyển đơn giản sang ngoại lệ với ErrorException.

Trong bài này, chúng ta sẽ tìm hiểu về ngoại lệ [exception] trong PHP. Để học tốt bài này, các bạn cần đọc lại bài để biết cách chạy ứng dụng web PHP với XAMPP.

1. Exception trong PHP là gì?

Trong PHP, ngoại lệ [exception] là một đối tượng [object] mô tả một lỗi [error] hoặc một vấn đề bất thường của PHP script. Exception có thể được xử lý bằng cách ném [throw] và bắt [catch] trong PHP. Nếu một exception xảy ra mà không được xử lý thì sẽ gây ra Fatal Error trong PHP.

Ném [throw] một ngoại lệ [exception] trong PHP

Câu lệnh

Fatal error: Uncaught Exception: Division by zero
3 cho phép chúng ta ném ra một exception. Khi một exception được ném ra thì các đoạn code sau nó sẽ không được thực thi. Nếu không bắt exception thì Fatal Error sẽ xảy ra với thông báo “Uncaught Exception“.


Kết quả
Fatal error: Uncaught Exception: Division by zero

2. Xử lý exception với câu lệnh try catch trong PHP

Chúng ta cần phải bắt [catch] các exception có thể xảy ra để tránh lỗi và không bị dừng chương trình. Trong PHP, câu lệnh

Fatal error: Uncaught Exception: Division by zero
4 giúp chúng ta catch các exception. Cú pháp:

try {
  //code that can throw exceptions
} catch[Exception $e] {
  //code that runs when an exception is caught
}

Ví dụ sử dụng try…catch để bắt exception


Kết quả
Unable to divide.

Câu lệnh try…catch…finally trong PHP

Câu lệnh

Fatal error: Uncaught Exception: Division by zero
5 cũng có thể được sử dụng để catch các exception. Cú pháp:


Các dòng code trong khối lệnh

Fatal error: Uncaught Exception: Division by zero
6 luôn luôn được thực thi mặc dù có xảy ra exception hay không. Nếu có khối lệnh
Fatal error: Uncaught Exception: Division by zero
6 thì khối lệnh
Fatal error: Uncaught Exception: Division by zero
8 có thể có hoặc không.

Ví dụ sử dụng try…catch…finally để bắt exception


Kết quả
Unable to divide.
Process complete.

Khối lệnh catch có thể có hoặc không khi sử dụng finally


Kết quả
Process complete.
Fatal error: Uncaught Exception: Division by zero

Lưu ý: Có thể không sử dụng

Fatal error: Uncaught Exception: Division by zero
8 khi có
Fatal error: Uncaught Exception: Division by zero
6. Nhưng nên sử dụng
Fatal error: Uncaught Exception: Division by zero
8 để bắt exception để tránh Fatal Error.

3. Đối tượng Exception trong PHP

Những exception được ném ra đều là một object của lớp Exception. Các đối tượng của lớp Exception chứa các thông tin về error xảy ra. Cú pháp tạo một object Exception:

Lỗi là một kết quả chương trình không mong muốn mà chương trình không thể tự xử lý được. Các lỗi được giải quyết bằng cách sửa chữa chương trình. Một ví dụ về lỗi sẽ là một vòng lặp vô hạn không bao giờ ngừng thực thi. Tìm hiểu thêm về lỗi trong PHP ngay sau đây

Ngoại lệ là gì?

Lỗi là một kết quả chương trình không mong muốn mà chương trình không thể tự xử lý được.

Các lỗi được giải quyết bằng cách sửa chữa chương trình. Một ví dụ về lỗi sẽ là một vòng lặp vô hạn không bao giờ ngừng thực thi.

Một ngoại lệ là kết quả chương trình không mong muốn có thể được xử lý bởi chính chương trình.

Ví dụ về ngoại lệ bao gồm cố gắng mở một tệp không tồn tại.

Ngoại lệ này có thể được xử lý bằng cách tạo tệp hoặc hiển thị cho người dùng tùy chọn tìm kiếm tệp.

ại sao phải xử lý ngoại lệ?

  • Tránh các kết quả không mong muốn trên các trang của chúng tôi có thể gây khó chịu hoặc khó chịu cho người dùng cuối của chúng tôi
  • Cải thiện tính bảo mật của các ứng dụng của chúng tôi bằng cách không tiết lộ thông tin mà người dùng độc hại có thể sử dụng để tấn công các ứng dụng của chúng tôi
  • Php Exceptions được sử dụng để thay đổi quy trình bình thường của một chương trình nếu xảy ra bất kỳ lỗi nào có thể dự đoán được.

Xử lý lỗi PHP

Khi xảy ra lỗi, tùy thuộc vào cài đặt cấu hình của bạn, PHP sẽ hiển thị thông báo lỗi trong trình duyệt web với thông tin liên quan đến lỗi đã xảy ra.

PHP cung cấp một số cách để xử lý lỗi.

Chúng ta sẽ xem xét ba [3] phương pháp thường được sử dụng;

  1. Câu lệnh Die - hàm die kết hợp hàm echo và exit trong một. Nó rất hữu ích khi chúng ta muốn xuất một thông báo và dừng việc thực thi tập lệnh khi xảy ra lỗi.
  2. Trình xử lý lỗi tùy chỉnh - đây là những chức năng do người dùng xác định được gọi bất cứ khi nào có lỗi xảy ra.
  3. Báo cáo lỗi PHP - thông báo lỗi tùy thuộc vào cài đặt báo cáo lỗi PHP của bạn. Phương pháp này rất hữu ích trong môi trường phát triển khi bạn không biết điều gì đã gây ra lỗi. Thông tin được hiển thị có thể giúp bạn gỡ lỗi ứng dụng của mình.

Ví dụ về xử lý lỗi

Bây giờ chúng ta hãy xem xét một số ví dụ đơn giản với các quy trình xử lý lỗi.

Giả sử rằng chúng tôi đã phát triển một ứng dụng sử dụng tệp văn bản để lưu trữ dữ liệu. Chúng tôi có thể muốn kiểm tra sự tồn tại của tệp trước khi chúng tôi cố gắng đọc dữ liệu từ nó.

Đoạn mã dưới đây thực hiện ví dụ trên.

Giả sử bạn đã lưu tệp simple_error.php trong thư mục phptuts, hãy mở URL  //localhost/phptuts/simple_error.php

Bạn sẽ nhận được kết quả sau:

Như bạn có thể thấy từ kết quả trên, nó làm cho ứng dụng của chúng ta trông không chuyên nghiệp và có thể gây khó chịu cho người dùng.

Chủ Đề