📜  在 Java 中解释 try & catch finally 块(1)

📅  最后修改于: 2023-12-03 14:50:56.719000             🧑  作者: Mango

在 Java 中解释 try & catch finally 块

在 Java 中,try & catch & finally 块是异常处理机制的核心。当代码中发生异常时,程序会把异常对象抛出给异常处理器,并且通过异常处理机制提供的 try & catch & finally 块来处理错误。

try 块

try 块是定义可能会出现异常的代码块。它的语法如下:

try {
    // 可能会发生异常的代码
} catch(Exception e) {
    // 处理异常
}

try 块中,我们可以写一些有可能会抛出异常的代码。如果该代码块中的代码发生异常,就会抛出异常,并且将异常对象传递给 catch 块进行处理。

catch 块

catch 块是捕获在 try 块中可能抛出的异常。当 try 块中的代码抛出异常,catch 块就会被执行,它可以让程序更好的控制异常。它的语法如下:

try {
    // 可能会发生异常的代码
} catch(Exception e) {
    // 处理异常
}

catch 块中,我们可以对处理异常进行逻辑编写,以便程序能够更好地处理异常。

finally 块

finally 块是一个可选的块,用于定义将在任何情况下都执行的代码。无论发生什么情况,finally 块中的代码都会被执行。这个块通常用于清理程序中的资源,例如文件句柄等。它的语法如下:

try {
    // 可能会发生异常的代码
} catch(Exception e) {
    // 处理异常
} finally {
    // 待执行的代码
}

finally 块中,我们可以写一些需要在程序结束前一定要执行的代码。

示例代码

下面是一个示例程序代码,用来演示 try & catch & finally 块用法:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = null;
        try {
            scanner = new Scanner(new File("input.txt"));
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到!");
        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }
}

在上述代码中,我们在 try 块中打开文件并读取它的每一行。如果文件未找到,我们将在 catch 块中捕获 FileNotFoundException 异常,然后打印出错误消息;最后,在 finally 块中,我们将关闭文件。