最终块总是用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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短