我知道在try/catch/finally块中使用return会产生麻烦 - 即使try或catch块中有返回语句,但最终块中的返回语句仍然是该方法的返回语句。
那么System.exit()也是如此吗?例如,如果我有一个try块:
try {
//Code
System.exit(0)
}
catch (Exception ex) {
//Log the exception
}
finally {
System.exit(1)
}
如果没有异常,那么将调用哪个System.exit()呢?如果退出是一个返回语句,那么就会始终调用System.exit(1)这一行代码。但是,我不确定exit和return的行为是否有所不同。代码处于一个非常困难,甚至可能无法复制的极端情况下,所以我无法编写单元测试。如果我今天稍微有点空闲时间,我将尝试运行一个实验,但无论如何,我都很好奇,也许SO上的某个人知道答案并可以在我无法运行实验之前或之后提供答案。
System.exit(0)
之前加入throw new Exception("Error");
,然后编译并查看可执行文件返回的状态码。 - Mouradif