Java程序崩溃有三个原因:
>未处理的RuntimeException.这可以通过main中的try-catch轻松解决.
>未处理的错误.这些是罕见的,但也可以主要捕获.我通常主要抓住Throwable.请参阅下面的模板.
>如果您使用线程,请查看Thread.setDefaultUncaughtExceptionHandler().
>虚拟机中的错误,或用户杀死的程序,或硬件暴力关闭.这些将导致无法捕获的崩溃.在这里,您最好的选择是使用新文件(…)创建一个标记文件.deleteOnExit().如果有机会,Java会为你清理它.
死锁的问题是如何检测到您有死锁.我还没有看到一致的方法.
import org.apache.commons.lang.exception.ExceptionUtils;
public class Demo
{
public static void main (String[] args)
{
try
{
Demo obj = new Demo ();
obj.run (args);
System.out.println ("Done.");
}
catch (Throwable t)
{
ExceptionUtils.printRootCauseStackTrace (t);
}
}
}