Skip to main content

Java Finally block exception - Khối Finally trong Java

Khi một ngoại lệ xuất hiện, phương thức đang được thực thi có thể bị dừng mà không được thi hành toàn vẹn. Nếu điều này xảy ra, thì các đoạn mã (ví dụ như đoạn mã với chức năng thu hồi tài nguyên có các lệnh đóng lại tập tin khai báo cuối phương thức) sẽ không bao giờ được gọi. Java cung cấp khối finally để giải quyết việc này. Khối finally thực hiện tất cả các việc thu dọn khi một ngoại lệ xảy ra. Khối này được sử dụng kết hợp với khối try, khối finally chứa các câu lệnh thu hồi tài nguyên về cho hệ thống hay lệnh in ra các câu thông báo.

Các lệnh này bao gồm:

  • Đóng tập tin.
  • Đóng lại bộ kết quả (được sử dụng trong chương trình cơ sở dữ liệu).
  • Đóng lại các kết nối được tạo trong cơ sở dữ liệu.

Cú pháp:

try {
   // Protected code
} catch (ExceptionType1 e1) {
   // Catch block
} catch (ExceptionType2 e2) {
   // Catch block
} catch (ExceptionType3 e3) {
   // Catch block
}finally {
   // The finally block always executes.
}

Ví dụ:

public class MyClass {

    public static void main(String[] args) {
        try {
            int[] myNumbers = {
                1,
                2,
                3
            };
            System.out.println(myNumbers[10]);
        } catch (Exception e) {
            System.out.println("Something went wrong.");
        } finally {
            System.out.println("The 'try catch' is finished.");
        }
    }
}

Kết quả:

Something went wrong.
The 'try catch' is finished.