如果从关机挂钩调用 System.exit,会发生什么情况?
我在Java中有一个相当复杂的关闭 - 有很多清理工作要做。特别是,我正在尝试弄清楚如何从关闭钩子线程进行错误处理。我的代码目前包括以下内容:
try {
return shutdownPromise = doShutdown();
}
catch (Throwable exc) {
logger.error("An exception was thrown while shutting down the application.", exc);
System.exit(1);
return null;
}
当我最初写这篇文章时,我基本上认为,关机中的错误应该直接转到。但水平不是那么低;它调用关机钩子。exit
exit
所以我想——
- 从关机挂钩调用 exit 有什么作用?
- 从关机挂钩处理错误的正确方法是什么?