Một ví dụ nữa, khi bạn đăng bài Facebook không có hạn. Bạn muốn đăng ảnh của bạn vừa chụp lên Facebook, theo quy định thì Facebook sẽ giảm chất lượng của tất cả các ảnh đã tải lên
Nhưng hôm đấy máy chủ của Facebook bị "đơ" và không giảm dung lượng ảnh của bạn
Đây là một ngoại lệ, xảy ra bên ngoài các trường hợp thông thường
Tum back, to menu
Bạn có thể hiểu là, chúng ta thiết lập chương trình và mong muốn nó hành động nào đó
Và tất cả các hành động khác với mong muốn thì nó là ngoại lệ [Exception]
Tất nhiên là bạn sẽ không muốn những ngoại lệ này làm hỏng chương trình của bạn rồi
Vì thế, bạn cần xử lý ngoại lệ
Bài này mình sẽ giúp các bạn hiểu thêm về
- Xử lý lỗi trong PHP
- Ví dụ về xử lý lỗi trong PHP
- Sự khác biệt giữa lỗi và ngoại lệ
- Nhiều ngoại lệ
2. Xử lý lỗi trong PHP [PHP Error processing]
Khi xảy ra lỗi, PHP hiển thị lỗi với một số thông tin để giúp bạn biết lỗi đó là gì và nằm ở vị trí nào
Dĩ nhiên là thông báo lỗi này không được thân thiện cho lắm
Người dùng nên hiểu là có lỗi gì. Họ chỉ biết là họ đang trải nghiệm tiền tệ
Vì thế, để tránh làm phật lòng các "Thượng đế"
PHP cung cấp một số cách để xử lý lỗi
Chúng ta sẽ tìm hiểu về 3 phương pháp xử lý lỗi sau đây
- Các câu lệnh die - hàm
die
là hàm kết hợp giữa echo và hàm thoát lại với nhau. Nó phù hợp khi chúng tôi muốn hiển thị một tin nhắn và tiếp tục quay lại kịch bản thực thi khi gặp lỗi
- Trình xử lý lỗi tùy chỉnh - Đây là phương pháp chúng tôi thiết lập tự động để xử lý mỗi khi xảy ra lỗi
- Báo cáo lỗi PHP - Lỗi tùy thuộc vào thiết lập của trình báo cáo lỗi của PHP. Phương pháp này rất hữu ích khi bạn thực sự có ý tưởng tưởng tượng về nguyên nhân xảy ra lỗi. Các thông tin về lỗi sẽ giúp bạn nhận thức lỗi và tìm kiếm cách xử lý
3. Ví dụ về cách xử lý lỗi trong chương trình PHP
Trước tiên, chúng tôi sẽ cố gắng đến với một số lỗi cơ bản
Ví dụ. C
húng ta đang viết một chương trình PHP để thực hiện chia 2 số với nhau.Đoạn mã PHP cho chương trình trên như sau
Giả sử bạn đã lưu tệp simple_error
trong thư mục phptuts
Open this path //localhost/phptuts/simple_error.php
trên trình duyệt
Chúng tôi nhận được kết quả như sau
Ví dụ về lỗi đơn giản trong chương trình PHP
Như các bạn có thể nhìn thấy kết quả trên, chương trình đã xảy ra lỗi và hiển thị lỗi cho người dùng thấy
Việc làm này là không chuyên nghiệp và khiến khách hàng khó chịu
Chúng ta thử sửa đổi chương trình trên, viết cho nó một cách xử lý trong trường hợp này
Save code back and run file //localhost/phptuts/error_handling.php
trên trình duyệt
Xử lý lỗi theo cách thông thường
Chúng ta nhận được thông báo là không thể chia hết cho 0
Cách thông báo lỗi này thân thiện hơn là ở trên phải không?
Bây giờ, hãy thử một ví dụ khác mà chúng tôi sử dụng trình xử lý lỗi tùy chỉnh
Mở đường dẫn của tệp này //localhost/phptuts/custom_error_handler.php
trên trình duyệt
Bây giờ bạn thấy lỗi được hiển thị thế nào?
Sử dụng trình xử lý lỗi tùy chỉnh để xử lý lỗi trong chương trình PHP
Như bạn đã thấy, trình xử lý lỗi tùy chỉnh cho phép chúng ta tùy chỉnh thông báo lỗi cho thân thiện và rõ ràng hơn
Bây giờ hãy thử xem ví dụ về loại báo cáo lỗi của PHP xem sao
Error Reporting Function has cú pháp as after
at here
- error_reporting là tên của báo cáo lỗi hàm được cung cấp bởi PHP,
- $reporting_level là tham số tùy chọn cho phép chúng ta tùy chọn mức độ báo cáo lỗi. Nếu không chỉ định mức báo cáo lỗi, PHP sẽ sử dụng báo cáo mặc định được định mức trong tệp php. ban đầu
Error level report in error_reporting
Cấp độ Báo cáo lỗiMô tả error_reporting[E_WARNING]; Chỉ có báo lỗi, không error_reporting[E_NOTICE]; Hiển thị, thông báo rằng có khả năng chương trình chạy bình thường hoặc lỗi error_reporting[E_USER_ERROR]; Màn hình của người dùng sẽ hiện ra lỗi error_reporting[E_USER_WARNING]; Màn hình của người dùng tạo tin nhắn cảnh báo error_reporting[E_USER_NOTICE]; Màn hình của người dùng hiện ra thông báo lỗi error_reporting[E_RECOVERABLE_ERROR]; Hiển thị lỗi không trí mạng và có thể điều chỉnh bằng cách sử dụng custom error handlers error_reporting[E_ALL]; Hiển thị tất cả lỗi và cảnh báo
4. Sự khác nhau của Lỗi [Error] và Ngoại lệ [Ngoại lệ]
Ngoại lệ [Exception] là trường hợp lệ bị ném và bị bắt trong khi lỗi thường không thể thu hồi lại
Ngoại lệ được xử lý trong hướng đối tượng
Điều này có nghĩa là khi ngoại lệ được ném ra, một đối tượng ngoại lệ sẽ được tạo ra và chứa thông tin chi tiết về ngoại lệ đó
Dưới đây là một số phương thức của đối tượng ngoại lệ
Phương thức getMessage[]
Phương thức getMessage[]
hiển thị tin nhắn ngoại lệ
Phương thức getCode[]
Phương thức getCode[]
hiển thị các mã số là đại diện của các ngoại lệ
Phương thức getFile[]
Phương thức getFile[]
hiển thị tên tệp và đường dẫn nơi xảy ra ngoại lệ
Phương thức getLine[]
Phương thức getLine[]
hiển thị các dòng ngoại lệ
Phương thức getTrace[]
Phương thức simple_error
0 hiển thị một loạt các dấu vết trước khi chương trình xảy ra ngoại lệ
Phương thức getPrevious[]
Phương thức simple_error
1 hiển thị các ngoại lệ trước khi xảy ra trường hợp hợp lệ tại
Phương thức getTraceAsString[]
Phương thức simple_error
2 hiển thị một loạt các dấu vết của ngoại lệ như một chuỗi thay vì một mảng
Phương thức __toString[]
Phương thức simple_error
3 hiển thị toàn bộ ngoại lệ dưới dạng một chuỗi
Cú pháp để loại bỏ một ngoại lệ
Ở đây chúng ta có
- throw is keyword used to throw a exception
- Ngoại lệ mới [. ] tạo ra một đối tượng ngoại lệ và truyền chuỗi "
simple_error
4" như một tham số
Đối với đoạn mã trên thì chúng ta nhận được thông báo như sau
Sử dụng từ khóa ném để ném một ngoại lệ
Bây giờ chúng ta sẽ xem một ví dụ sử dụng simple_error
5 để xử lý ngoại lệ
5. Ví dụ sử dụng Try Catch PHP để xử lý ngoại lệ
Ví dụ về cách sử dụng try catch để xử lý ngoại lệ trong Lập trình PHP
Cú pháp của simple_error
6 như sau
Giải thích cú pháp try catch php
- thử{. } đây là mã khối thực thi nói rằng, có thể nó sẽ xảy ra ngoại lệ
- bắt [Ngoại lệ $e]{. } Đây là mã khối được sử dụng để bắt ngoại lệ được ném ra và gán đối tượng ngoại lệ cho biến
simple_error
7
Ví dụ bên dưới sẽ cố tình ném ra một ngoại lệ và bắt lại nó
Open path simple_error
8 bạn sẽ nhận được kết quả như sau
Kết quả của một ví dụ sử dụng try catch php để xử lý ngoại lệ
Nó cũng có thể tạo nhiều ngoại lệ cho một cấu trúc thử tùy chọn theo kiểu của ngoại lệ được ném ra
6. Nhiều Ngoại Lệ [Exception Exception]
Nhiều ngoại lệ sử dụng nhiều khối simple_error
9 để cố gắng bắt các ngoại lệ bị ném ra
Nhiều ngoại lệ có ích khi
- Bạn muốn hiển thị thông báo phụ thuộc vào ngoại lệ bị ném ra
- Bạn muốn thực hiện một hành động độc lập tùy thuộc vào ngoại lệ bị ném ra
Sơ đồ dưới đây để bạn thấy cách hoạt động của Multiple Exceptions
Sơ đồ xử lý Multiple Exceptions
Ví dụ về cách sử dụng Multiple Exceptions trong PHP
Ở ví dụ dưới đây, chúng tôi dự kiến cho 2 trường hợp ngoại lệ xảy ra
- Chia cho số 0
- Chia cho số lượng âm thanh
Chạy chương trình và chúng ta nhận được kết quả
Xử lý chương trình khi rơi vào trường hợp chia cho số 0
Bây giờ chúng ta thử truyền vào một số là phptuts
0 thử xem sao
Chạy chương trình như vừa rồi và bạn nhận được kết quả là gì?
Bạn đã hiểu rõ hơn về Try Catch trong PHP rồi đó
Qua bài hướng dẫn xử lý lỗi và ngoại lệ với try catch PHP this you know
- Lỗi là kết quả bất ngờ của chương trình lập trình
- Xử lý Lỗi cải thiện hiệu suất của ứng dụng
- PHP đã xây dựng các hàm để có thể sử dụng tùy chọn chỉnh sửa báo cáo lỗi theo cấp độ
- Ngoại lệ [Ngoại lệ] thì giống như lỗi, nhưng chúng ta có thể sử dụng try catch php để bắt ngoại lệ
- Hiển thị thông tin về lỗi cho người dùng thấy là không tốt đối với trải nghiệm cũng như vấn đề bảo mật