当Java程序突然退出时,是否可以执行某些操作?

时间:2010-07-29 21:09:04

标签: java

如果程序突然退出或有任何异常,我需要记录日志。例如,当某人在运行程序时按Ctrl+C时,我需要记录它突然退出。我怎么能这样做?

1 个答案:

答案 0 :(得分:10)

您可以尝试使用shutdown hook。从文档中,钩子将在以下情况下执行:

  • 程序正常退出
  • VM已终止

这涵盖了您的^C情况,但无疑会涵盖机器被拔出的情况(除非机器上有某种冗余硬件)。

Here是关于设计的一些注释。

原油示例:

Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        System.out.println("System was shutdown");
    }
});