Hướng dẫn dùng catch trong PHP
Show
1. Ngoại lệ (Exception) là cái khỉ gì?Bạn đã nghe nhiều đến Bug (hay còn gọi là lỗi) hoặc ngoại lệ trong lập trình rồi nhỉ? Ví dụ thế này, bỗng một ngày đẹp trời bạn lướt facebook và bấm thả tim vào ảnh Crush của mình. Nhưng mà Fb lại bị lỗi khiến bạn không thể bấm thả tim được (Số trời định =))). Yên tâm, đây chỉ là lỗi kỹ thuật thôi. Điều này xảy ra mà các lập trình viên của Facebook không ngờ tới. Một ví dụ nữa, khi bạn đăng bài Facebook chẳng hạn. Bạn muốn post tấm hình 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 tấm ả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 tấm ả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. Túm lại, để đơn giản. Bạn có thể hiểu là, chúng ta lập 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). Dĩ nhiên là bạn sẽ không muốn những ngoại lệ này phá 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 bạn hiểu thêm về:
2. Xử lý lỗi trong PHP (PHP Error handling)Khi lỗi xảy ra, 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 ở chỗ nào. Dĩ nhiên là thông báo lỗi này không được thân thiện cho lắm. Nên người dùng sẽ chẳng hiểu là lỗi gì. Họ chỉ biết là họ đang có trải nghiệm tệ. Vì thế, để tránh làm các "Thượng đế" phật lò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:
3. Ví dụ về cách xử lý lỗi trong chương trình PHPTrước tiên chúng ta thử đế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 code PHP cho chương trình trên như sau: Giả sử bạn đã lưu file Mở đường dẫn này Chúng ta 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 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: Lưu code lại và lại chạy tệp 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à cách ở trên phải không? Bây giờ, hãy thử một ví dụ khác mà chúng ta sử dụng custom error handlers Mở đường dẫn của file này Bây giờ bạn thấy lỗi được hiển thị thế nào? Sử dụng custom error handlers để xử lý lỗi trong chương trình PHP Như bạn thấy đó, custom error handlers cho phép chúng ta tùy chỉnh tin nhắn 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 report lỗi của PHP xem sao. Error Reporting Function có cú pháp như sau: Ở đây:
Các cấp độ report lỗi trong error_reporting
4. Sự khác nhau của Lỗi (Errors) và Ngoại lệ (Exception)Ngoại lệ (Exception) là trường hợp được ném và bắt trong khi lỗi thường không thể thu hồi lại. Exception đượ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 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 Exception. Phương thức getMessage(): Phương thức Phương thức getCode(): Phương thức Phương thức getFile(): Phương thức Phương thức getLine(): Phương thức Phương thức getTrace():Phương thức Phương thức getPrevious(): Phương thức Phương thức getTraceAsString(): Phương thức Phương thức __toString(): Phương thức Cú pháp để ném ra một ngoại lệỞ đây chúng ta có:
Đối với đoạn mã trên thì chúng ta nhận được thông báo như sau: Sử dụng throw keyword để ném ra một ngoại lệ Bây giờ chúng ta sẽ xem một ví dụ sử dụng 5. Ví dụ sử dụng Try Catch PHP để xử lý ngoại lệVí dụ sử về cách sử dụng try catch để xử lý ngoại lệ trong Lập trình PHP Cú pháp của Giải thích cú pháp try catch php:
Ví dụ bên dưới đây sẽ cố tình ném ra một ngoại lệ và bắt lại nó: Mở đường dẫn 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 try tùy theo kiểu của ngoại lệ được ném ra. 6. Multiple Exceptions (Nhiều ngoại lệ)Multiple Exceptions sử dụng nhiều block Multiple Exception có ích khi:
Sơ đồ dưới đây cho bạn thấy cách hoạt động của Multiple Exceptions Sơ đồ xử lý của Multiple Exceptions Ví dụ về cách sử dụng Multiple Exceptions trong PHP:Ở ví dụ bên dưới đây chúng ta dự kiến cho 2 trường hợp ngoại lệ xảy ra:
Chạy chương trình và chúng ta nhận được kết quả: Chương trình xử lý 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à 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 hơn về Try Catch trong PHP rồi đấy!Qua bài hướng dẫn xử lý lỗi và ngoại lệ với try catch PHP này bạn đã biết:
Chúc bạn học tốt! |