相关疑难解决方法(0)

finally块总是在Java中执行吗?

考虑到这一点的代码,我可以绝对肯定的是,finally块总是执行,不管something()是什么?

try {  
    something();  
    return success;  
}  
catch (Exception e) {   
    return failure;  
}  
finally {  
    System.out.println("I don't know if this will get printed out");
}
Run Code Online (Sandbox Code Playgroud)

java return try-catch-finally

2281
推荐指数
38
解决办法
48万
查看次数

java.lang.Thread.interrupt()做什么?

你能解释一下java.lang.Thread.interrupt()调用时会发生什么吗?

java multithreading

199
推荐指数
5
解决办法
12万
查看次数

finally {}块不会执行的情况是什么?

在Java try{} ... catch{} ... finally{}块中,finally{}无论try/catch中发生什么,通常都认为其中的代码是"保证"运行的.但是,我知道至少有两种情况不会执行:

  • 如果System.exit(0)被召唤; 要么,
  • 如果异常被抛到JVM并且发生默认行为(即printStackTrace()退出)

是否有任何其他程序行为会阻止finally{}块中的代码执行?代码在什么具体条件下执行?

编辑:正如NullUserException指出的那样,第二种情况实际上并非如此.我认为这是因为标准错误中的文本在标准输出之后打印出来,防止文本在没有向上滚动的情况下被看到.:) 道歉.

java jvm try-catch try-catch-finally

31
推荐指数
2
解决办法
2万
查看次数