最终块总是用Java执行吗?
是的,除非由于JVM崩溃或对System.exit()的调用而导致程序异常终止,否则始终执行finally块。
无论是否发生异常,总是执行finally块。
如果发生诸如关闭文件或数据库连接之类的异常,则使用finally块清除代码。
我们不能说finally块总是执行,因为有时如果将诸如System.exit()或类似代码的任何语句写入try块,则程序将自动终止,并且在这种情况下将不会执行finally块。
由于其他条件(如JVM内存不足,当我们的Java进程由于try块中的电源故障和死锁情况而关闭时,我们的计算机从任务管理器或控制台中被强制杀死)时,finally块将不会执行。
例子1
public class FinallyBlock {
public static void main(String args[]){
try {
int a=10,b=30;
int c = b/a;
System.out.println(c);
} catch(ArithmeticException ae){
System.out.println(ae);
} finally {
System.out.println("finally block is always executed");
}
}
}在上面的示例中,无论是否发生异常,总是执行finally块。
输出结果
3 finally block is always executed
例子2
public class FinallyBlock {
public static void main(String args[]) {
try {
System.out.println("I am in try block");
System.exit(1);
} catch(Exception ex){
ex.printStackTrace();
} finally {
System.out.println("I am in finally block");
}
}
}在上面的示例中,由于try块中的System.exit(1)条件,无法执行finally块。
输出结果
I am in try block
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西