处理异常的Java程序退出
发布时间:2020-12-15 04:50:37 所属栏目:Java 来源:网络整理
导读:假设我有一个打开数据库连接的 Java应用程序.通常我会在finally块中添加一个connection.close(),但是在kill操作或任何其他异常终止的情况下不会执行此块,是吗?作为程序员,我是否有任何其他预防措施可以在应用程序退出之前正确关闭连接? 解决方法 您应该查
假设我有一个打开数据库连接的
Java应用程序.通常我会在finally块中添加一个connection.close(),但是在kill操作或任何其他异常终止的情况下不会执行此块,是吗?作为程序员,我是否有任何其他预防措施可以在应用程序退出之前正确关闭连接?
解决方法
您应该查看Java的Runtime.addShutdownHook()方法(
http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html#addShutdownHook(java.lang.Thread)).它允许您添加将在虚拟机终止时调用的挂钩.您可以使用它来调用清理例程.
那将是一个TERM信号. KILL信号将终止进程并且不允许它进行任何清理(因为接收进程无法捕获或忽略KILL信号). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |