Java中的finally
语句块是一个可选的语句,可以和try
和catch
块联合使用。这个语句块中的代码无论在异常有无被抛出,都会在程序执行完try
和catch
块后被执行。通常情况下,finally
块用来执行一些清理性的代码,例如关闭数据库连接、输入输出流等;同时finally
块也可以用来确保某些代码块必须被执行,即使有异常发生。
下面是一些finally
语句块的示例说明:
示例一
public static int divide(int dividend, int divisor) {
int result = 0;
try {
result = dividend / divisor;
return result;
} catch (Exception e) {
System.out.println("Exception caught: " + e);
} finally {
System.out.println("Finally block executed");
}
return result;
}
在这个例子中,finally
语句块中的代码总是会被执行,即使在try
语句块执行的过程中出现了异常并被catch
块所捕捉。这个例子里为了演示finally
块总是被执行,我们打印出了一段语句。在try
块中我们对两个整型数进行了相除操作,并且将其结果返回。但是如果出现除以0的异常,将会被catch
块捕捉到。无论最后的结果如何,finally
语句块内部的代码都会被执行一次。
示例二
public static void readFile(String fileName) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(fileName));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (IOException e) {
System.out.println("Error reading file: " + e);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
System.out.println("Error closing file: " + e);
}
}
}
}
在这个例子中,我们读取了一个文件,如果读取失败了我们在catch
块中打印出错误信息。但是为了避免文件一直被占用,我们需要在操作结束后把文件关闭。我们使用finally
块来确保文件始终能够被关闭,即使在读取文件过程中出现了异常。
综上所述,finally
块确保了在Java程序中资源的释放和一些必要的代码被执行。当然,在一些特殊情况下,你可以不使用finally
块,但是一般来说还是推荐使用它以确保程序的正确行为。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java finally语句块的作用是什么? - Python技术站