最佳答案
我知道返回 try/catch/finally 块会带来一些麻烦——在这种情况下,finally 块中的返回值总是方法的返回值,即使 try 或 catch 块中的返回值应该是执行的返回值。
然而,这同样适用于 System.exit ()吗? 例如,如果我有一个 try 块:
try {
//Code
System.exit(0)
}
catch (Exception ex) {
//Log the exception
}
finally {
System.exit(1)
}
如果没有异常,将调用哪个 System.exit () ?如果 exit 是 return 语句,那么 System.exit (1)行将总是(?)被称为。但是,我不确定退出和返回的行为是否不同。
代码是在一个极端的情况下,这是非常困难的,如果不是不可能的,重现,所以我不能写一个单元测试。如果我有几分钟空闲时间的话,我今天晚些时候会尝试做一个实验,但我还是很好奇,也许某个在 SO 上的人知道答案,能在我做实验之前提供答案,或者在我不能做实验的情况下提供答案。