Sur*_*tta 6 java try-catch-finally system.exit
我正在努力 My application's under maintanace module
try {
if (isUndermaintanace) {
System.exit(1);
} else {
prepareResources();
}
} catch (Exception e) {
printStack(e);
} finally {
cleanResources();
}
Run Code Online (Sandbox Code Playgroud)
当我通过 isundermaintanace true 最后没有执行.
我错过了什么?还有其他办法吗?
Cor*_*bin 15
Finally如果您杀死VM(或者VM以其他方式死亡),则不执行.System.exit()是一种杀死程序的相当粗略的方法,而最终是一个高级OOP概念.System.exit()非常快速地保释,尽可能少地进行清理.
如果你进入任务管理器并杀死了进程或发出了kill -9进程,你会期望最终执行吗?它含糊不清(非常模糊)同样的事情.
有一些值得注意的事情.特别是,我在帖子的第一部分撒了一点谎言.比喻System.exit()真正立即杀死一个程序是误导性的.特别是,运行了关闭挂钩,如果已配置,则实际上可以运行终结器.但请注意,文档相当强烈建议不要使用runFinalizersOnExit.
| 归档时间: |
|
| 查看次数: |
6862 次 |
| 最近记录: |