Lỗi bắt php

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 http://localhost/phptuts/simple_error.php trên trình duyệt

Chúng tôi nhận được kết quả như sau

Lỗi bắt php

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 http://localhost/phptuts/error_handling.php trên trình duyệt

Hướng dẫn dùng try/catch trong PHP

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 http://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?

Hướng dẫn dùng try/catch trong PHP

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_error0 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_error1 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_error2 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_error3 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_error4" 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

Hướng dẫn dùng try/catch trong PHP

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_error5 để xử lý ngoại lệ

5. Ví dụ sử dụng Try Catch PHP để xử lý ngoại lệ

Hướng dẫn dùng try/catch trong PHP

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_error6 như sau

Giải thích cú pháp try catch php

  • cố gắng{. } đâ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_error7

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_error8 bạn sẽ nhận được kết quả như sau

Hướng dẫn dùng try/catch trong PHP

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_error9 để 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

Hướng dẫn dùng try/catch trong PHP

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ả

Hướng dẫn dùng try/catch trong PHP

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à phptuts0 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
* Trong khóa học Lập trình web với PHP, bạn sẽ được hướng dẫn các kỹ năng tốt hơn về cách xử lý các ngoại lệ thường gặp trong trình duyệt web