【发布时间】:2017-06-24 19:06:10
【问题描述】:
我有基于 Java 的 Windows 桌面应用程序。
我在我的应用程序中保留了 defaultuncaughtexceptionahandler 和 shutdown hook。
我有一些用户称为退出点,例如,用户点击退出,一些错误情况等。所有用户退出点都有适当的日志,随后是登录关闭挂钩。
现在,对于我的一位用户来说,应用程序会不时退出。这里用户没有调用任何用户出口点。打印关闭挂钩日志。 defaultuncaughtexception 处理程序没有异常。
我无法找到调用 system.exit 的人,因此无法找到 shutdown hook 。 我能以某种方式找到所谓的关机钩子或 system.exit () 吗? 打印关闭钩子让我认为这是正确的 jvm 关闭而不是突然关闭。
最好的问候, 索拉夫
【问题讨论】:
-
抛出、捕获并记录异常。
-
但是未捕获的异常处理程序不应该捕获未捕获的异常吗?...日志还显示了系统退出发生之前的不同情况
-
什么?我说抓住它。
-
@DaveNewton 为什么你需要扔/接住它?只需创建异常并打印它的堆栈跟踪,或者更容易键入(但也一样),调用
Thread.dumpStack() -
@ErwinBolwidt 当然,这也很好。
标签: java jvm shutdown-hook