Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các phương pháp xử lý ngoại lệ khác nhau trong Java với sự trợ giúp của các ví dụ.
Trong hướng dẫn trước, chúng ta đã tìm hiểu về các ngoại lệ của Java . Chúng ta biết rằng các trường hợp ngoại lệ chấm dứt việc thực thi một chương trình một cách bất thường.
Đây là lý do tại sao điều quan trọng là phải xử lý các trường hợp ngoại lệ. Dưới đây là danh sách các cách tiếp cận khác nhau để xử lý các ngoại lệ trong Java.
- khối try…catch
- khối finally
- từ khóa throw và throws
Nội dung chính
1. Khối try … catch trong Java
Khối try-catch được sử dụng để xử lý các ngoại lệ trong Java. Đây là cú pháp của khối try…catch:
Ở đây, chúng ta đã đặt code có thể tạo ra một ngoại lệ bên trong khối try. Mỗi khối try được theo sau bởi một khối catch.
Khi một ngoại lệ xảy ra, nó sẽ bị chặn bởi khối catch. Các khối catch không thể được sử dụng mà không có khối try.
Ví dụ: Xử lý ngoại lệ bằng try … catch
Đầu ra
Trong ví dụ, chúng ta đang cố gắng chia một số cho 0. Ở đây, code này tạo ra một ngoại lệ.
Để xử lý ngoại lệ, chúng ta đã đặt code, 5 / 0 bên trong khối try. Bây giờ khi một ngoại lệ xảy ra, phần còn lại của code bên trong khối try sẽ bị bỏ qua.
Các khối catch bắt ngoại lệ và báo cáo bên trong khối catch được thực thi.
Nếu không có câu lệnh nào trong khối try tạo ra ngoại lệ, khối catch đó sẽ bị bỏ qua.
2. Khối finally trong Java
Trong Java, khối finally luôn được thực thi bất kể có ngoại lệ hay không.
Các khối finally là không bắt buộc. Và, đối với mỗi khối try, chỉ có thể có một khối finally.
Cú pháp cơ bản của khối finally là:
Nếu một ngoại lệ xảy ra, khối finally sẽ được thực thi sau khối try…catch. Nếu không, nó được thực thi sau khối try. Đối với mỗi khối try, chỉ có thể có một khối finally.
Ví dụ: Xử lý ngoại lệ trong Java sử dụng khối finally
Đầu ra
Trong ví dụ trên, chúng ta đang chia một số cho 0 bên trong khối try. Ở đây, code này tạo ra một ArithmeticException.
Ngoại lệ được chặn bởi khối catch. Và, sau đó khối finally được thực thi.
Lưu ý : Đó là một thực hành tốt để sử dụng khối finally. Đó là vì nó có thể bao gồm các code dọn dẹp quan trọng như,
- code có thể vô tình bị bỏ qua khi trả về, tiếp tục hoặc ngắt
- đóng tệp hoặc kết nối
3. Từ khóa throw và throws trong Java
Từ khóa throw trong Java được sử dụng để ném một ngoại lệ rõ ràng.
Khi chúng ta throw ngoại lệ, luồng chương trình sẽ di chuyển từ khối try này sang khối catch khác.
Ví dụ: Xử lý ngoại lệ bằng throw trong Java
Đầu ra
Trong ví dụ trên, chúng ta đang ArithmeticExceptions ử dụng từ khóa throw một cách rõ ràng .
Tương tự, từ khóa throws được sử dụng để khai báo loại ngoại lệ có thể xảy ra trong phương thức. Nó được sử dụng trong khai báo phương thức.
Ví dụ: Từ khóa ném Java
Đầu ra
Khi chúng ta chạy chương trình này, nếu tệp test.txt không tồn tại, hãy ném FileInputStream ra một lỗi FileNotFoundException, nó là mở rộng của lớp IOException.
Phương thức findFile() xác định rằng một IOException có thể được ném. Phương thức main() sẽ gọi phương thức này và xử lý các ngoại lệ nếu nó được ném.
Nếu một phương thức không xử lý các ngoại lệ, thì loại ngoại lệ có thể xảy ra trong nó sẽ được chỉ rõ trong mệnh đề throws.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Java từ cơ bản tới nâng cao tại đây nha.
- Ebook về Java tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!