public class TestMe {
static boolean isNornamExit = true;
private static final void shutdownCallback() {
if (!isNornamExit) {
System.out.println("exception.");
} else {
System.out.println("exit normally.");
}
}
public static void main(String[] args) throws InterruptedException {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
shutdownCallback();
}
});
isNornamExit = false;
System.exit(1);
}
}
注意正常退出也会执行 shutdownCallback()方法,所以要有标识存储是否正常退出信息,然后根据标识决定hook 方法怎么实现。
--end
本文介绍了一个Java程序如何区分正常退出与异常退出,并通过Runtime.addShutdownHook方法注册回调来打印不同的消息。为了正确地区分两种退出方式,使用了一个静态变量作为标志。

被折叠的 条评论
为什么被折叠?



