如果引发异常并且catch正在调用System.exit
try {
} catch (Exception e) {
System.exit(0);
} finally {
System.out.println("closing the conn");
}
答案 0 :(得分:0)
System.exit()通常永远不会返回,所以你不会在你编写的时候执行finally块中的代码。
你能做到的一种方法是注意你在catch块中有一个错误,然后在finally块中执行退出。
boolean error = false;
try {
// bla bla blaa
} catch (Exception e) {
error = true;
}
finally {
if (error) {
System.exit(0);
}
}
另一种方法是添加一个将在JVM退出时调用的关闭钩子。
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Do your shutdown stuff here");
}
}));
try {
// bla bla blah
} catch (Exception e) {
System.exit(0);
} finally {
}