Khối try-catch trong Java

0
66

Khối try trong Java

Khối try trong Java được sử dụng để bao quanh code mà có thể ném một Exception. Nó phải được sử dụng bên trong phương thức. Khối try phải được theo sau bởi hoặc khối catch hoặc khối finally.

Cú pháp của khối try-catch trong Java

Cú pháp của khối try-finally trong Java

Khối catch trong Java

Khối catch trong Java được sử dụng để xử lý các Exception. Nó phải được sử dụng chỉ sau khối try. Bạn có thể sử dụng nhiều khối catch với một khối try đơn.

Vấn đề khi không có Exception Handling

Chúng ta cùng tìm hiểu vấn đề nếu không sử dụng khối try-catch.

Chương trình sẽ cho kết quả sau:

Như trong ví dụ trên, phần còn lại của code không được thực thi (trong ví dụ này là lệnh in Phan code con lai… không được in). Giả sử nếu có khoảng 100 dòng code sau exception, thì tất cả các dòng code này sẽ không được thực thi.

Xử lý vấn đề trên bởi Exception Handling trong Java

Bây giờ, cùng ví dụ trên, chúng ta sử dụng khối try-catch để xử lý vấn đề trên.

Chương trình sẽ cho kết quả sau:

Lúc này, phần còn lại của code đã được thực thi.

Chế độ làm việc nội tại của khối try-catch trong Java

Đầu tiên, JVM kiểm tra xem exception đã được xử lý hay chưa. Nếu exception chưa được xử lý, JVM cung cấp một Exception Handler mặc định, để thực hiện các tác vụ sau:

  • In ra miêu tả của exception đó.
  • In ra stack trace (cấu trúc thứ bậc của phương thức nơi mà exception xuất hiện).
  • Làm cho chương trình ngừng lại.

Nhưng nếu exception đã được xử lý bởi Lập trình viên, thì luồng chuẩn của ứng dụng được duy trì (hay là phần còn lại của code được thực thi).

Nhiều khối catch trong Java

Nếu bạn phải thực hiện các tác vụ khác nhau mà có thể xảy ra các exception khác nhau, bạn sử dụng nhiều khối catch trong Java. Bạn theo dõi ví dụ đơn giản sau:

Chương trình sẽ cho kết quả sau:

Qui tắc 1: Tại một thời điểm, chỉ một exception được xuất hiện và tại một thời điểm chỉ có một khối catch được thực thi.

Qui tắc 2: Tất cả khối catch phải được sắp xếp từ cụ thể nhất tới chung nhất, ví dụ: việc bắt ArithimeticExption phải ở trước việc bắt Exception.

Chạy chương trình trên sẽ cho một lỗi compile time error.

Lồng khối try trong Java

Việc một khối try bên trong một khối try khác thì được gọi là các khối try được lồng vào nhau, hay là lồng các khối try trong Java.

Tại sao sử dụng các khối try lồng nhau trong Java

Đôi khi có một tình huống là một phần của một khối code có thể gây ra một lỗi và toàn bộ khối lại có thể gây ra lỗi khác. Trong các tình huống đó, Exception Handler phải được lồng vào nhau. Cú pháp:

Ví dụ về các khối try lồng nhau trong Java

Chương trình sẽ cho kết quả sau:

 http://vietjack.com/java/khoi_try_catch_trong_java.jsp

Gửi phản hồi

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.