Checked exception là gì?

Noun Java

Checked exception là các ngoại lệ (exception) được kiểm tra tại thời điểm biên dịch (compile time). Nếu một số mã bên trong một phương thức (method) ném ra (throw) một checked exception, thì phương thức đó phải xử lý ngoại lệ đó hoặc nó phải chỉ định ngoại lệ bằng cách sử dụng từ khóa throws.

Ví dụ: hãy xem xét chương trình Java sau đây mở file tại vị trí "C:\test\a.txt” và in ba dòng đầu tiên của nó. Chương trình không biên dịch được vì hàm main() sử dụng FileReader() và FileReader() ném ra một checked exception là FileNotFoundException. Nó cũng sử dụng các phương thức readLine() và close() và các phương thức này cũng ném ra checked exception là IOException


// Java Program to Illustrate Checked Exceptions
// Where FileNotFoundException occured
  
// Importing I/O classes
import java.io.*;
  
// Main class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Reading file from path in local directory
        FileReader file = new FileReader("C:\\test\\a.txt");
  
        // Creating object as one of ways of taking input
        BufferedReader fileInput = new BufferedReader(file);
  
        // Printing first 3 lines of file "C:\test\a.txt"
        for (int counter = 0; counter 

Để sửa chương trình trên, chúng ta cần chỉ định danh sách các ngoại lệ bằng cách sử dụng throws hoặc chúng ta cần sử dụng khối try-catch. Chúng ta đã sử dụng throws trong chương trình dưới đây. Vì FileNotFoundException là một lớp con (subclass) của IOException, chúng ta có thể chỉ định IOException trong danh sách throws và làm cho chương trình ở trên khi biên dịch không có lỗi.


// Java Program to Illustrate Checked Exceptions
// Where FileNotFoundException does not occur
  
// Importing I/O classes
import java.io.*;
  
// Main class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
        throws IOException
    {
  
        // Creating a file and reading from local repository
        FileReader file = new FileReader("C:\\test\\a.txt");
  
        // Reading content inside a file
        BufferedReader fileInput = new BufferedReader(file);
  
        // Printing first 3 lines of file "C:\test\a.txt"
        for (int counter = 0; counter 

Output:


First three lines of file "C:\test\a.txt"

Learning English Everyday