VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String

Xử lý Ngoại Lệ

Exception là gì? Khối lệnh try-catch Đa khối lệnh catch Khối lệnh try lồng nhau Khối lệnh finally Từ khóa throw Từ khóa throws Throw với Throws Final vs Finally vs Finalize Exception Handling với Overriding phương thức Tùy chỉnh Exception Truyền Exception cho caller
Java AWT Java Swing Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Khối lệnh finally trong java


Khối lệnh try lồng nhau trong java
Từ khóa throw trong java

Khối lệnh finally trong java được sử dụng để thực thi các lệnh quan trọng như đóng kết nối, đóng cá stream,...

Khối lệnh finally trong java luôn được thực thi cho dù có ngoại lệ xảy ra hay không hoặc gặp lệnh return trong khối try.

Khối lệnh finally trong java được khai báo sau khối lệnh try hoặc sau khối lệnh catch.

flow của khối lệnh finally trong java
Note: Nếu bạn không xử lý ngoại lệ, trước khi kết thúc chương trình, JVM thực thi khối finally (nếu có).

Nội dung chính

  • Tại sao phải sử dụng khối finally
  • Cách sử dụng khối finally trong java
    • TH1
    • TH2
    • TH3
    • TH4

Tại sao phải sử dụng khối finally

Khối finally có thể được sử dụng để chèn lệnh "cleanup" vào chương trình như việc đóng file, đóng các kết nối,...


Cách sử dụng khối finally trong java

Dưới đây là các trường hợp khác nhau về việc sử dụng khối finally trong java.

TH1

sử dụng khối lệnh finally nơi ngoại lệ không xảy ra.

public class TestFinallyBlock {
    public static void main(String args[]) {
        try {
            int data = 25 / 5;
            System.out.println(data);
        } catch (NullPointerException e) {
            System.out.println(e);
        } finally {
            System.out.println("finally block is always executed");
        }
        System.out.println("rest of the code...");
    }
}

Output:

5
finally block is always executed
rest of the code...

TH2

sử dụng khối lệnh finally nơi ngoại lệ xảy ra nhưng không xử lý.

public class TestFinallyBlock1 {
    public static void main(String args[]) {
        try {
            int data = 25 / 0;
            System.out.println(data);
        } catch (NullPointerException e) {
            System.out.println(e);
        } finally {
            System.out.println("finally block is always executed");
        }
        System.out.println("rest of the code...");
    }
}

Output:

finally block is always executed
Exception in thread "main" java.lang.ArithmeticException: / by zero

TH3

sử dụng khối lệnh finally nơi ngoại lệ xảy ra và được xử lý.

public class TestFinallyBlock2 {
    public static void main(String args[]) {
        try {
            int data = 25 / 0;
            System.out.println(data);
        } catch (ArithmeticException e) {
            System.out.println(e);
        } finally {
            System.out.println("finally block is always executed");
        }
        System.out.println("rest of the code...");
    }
}

Output:

java.lang.ArithmeticException: / by zero
finally block is always executed
rest of the code...

TH4

Sử dụng khối lệnh finally trong trường hợp trong khối try có lệnh return.

public class TestFinallyBlock3 {
    public static void main(String args[]) {
        try {
            int data = 25;
            if (data % 2 != 0) {
             System.out.println(data + " is odd number");
             return;
            }
        } catch (ArithmeticException e) {
            System.out.println(e);
        } finally {
            System.out.println("finally block is always executed");
        }
        System.out.println("rest of the code...");
    }
}

Output:

25 is odd number
finally block is always executed
Quy tắc: Đối với mỗi khối try, có thể có không hoặc nhiều khối catch, nhưng chỉ có một khối finally.
Note: Khối finally sẽ không được thực thi nếu chương trình bị thoát (bằng cách gọi System.exit() hoặc xảy ra một lỗi không thể tránh khiến chương trình bị chết).

Khối lệnh try lồng nhau trong java
Từ khóa throw trong java

Recent Updates

Đối tượng exception trong JSPXử lý ngoại lệ trong javaĐa khối lệnh catch trong javaException handling với overriding phương thức trong javaException tùy chỉnh trong javaKhối lệnh finally trong javaKhối lệnh try lồng nhau trong javaKhối lệnh try-catch trong javaSự khác nhau giữa final, finally và finalizeSự khác nhau giữa throw và throws trong javaTruyền Exception cho callerTừ khóa throw trong javaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml