📅  最后修改于: 2023-12-03 14:50:56.719000             🧑  作者: Mango
在 Java 中,try
& catch
& finally
块是异常处理机制的核心。当代码中发生异常时,程序会把异常对象抛出给异常处理器,并且通过异常处理机制提供的 try
& catch
& finally
块来处理错误。
try
块是定义可能会出现异常的代码块。它的语法如下:
try {
// 可能会发生异常的代码
} catch(Exception e) {
// 处理异常
}
在 try
块中,我们可以写一些有可能会抛出异常的代码。如果该代码块中的代码发生异常,就会抛出异常,并且将异常对象传递给 catch
块进行处理。
catch
块是捕获在 try
块中可能抛出的异常。当 try
块中的代码抛出异常,catch
块就会被执行,它可以让程序更好的控制异常。它的语法如下:
try {
// 可能会发生异常的代码
} catch(Exception e) {
// 处理异常
}
在 catch
块中,我们可以对处理异常进行逻辑编写,以便程序能够更好地处理异常。
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
块中,我们将关闭文件。