java – 有程序识别它上次崩溃了吗?

前端之家收集整理的这篇文章主要介绍了java – 有程序识别它上次崩溃了吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让( Java)程序在上次运行时识别崩溃的最佳方法是什么,并显示一条消息“看起来这个程序上次崩溃了.请在这里报告此问题:bla@foo.com. ……”

有推荐的方法吗? (坏?)我的想法是:

>让程序在启动时存储临时密钥文件,然后在定期关闭时将其删除.如果文件在启动时存在,则显示该消息.
>识别死锁并在此情况下存储“错误文件”.如果启动时存在“错误文件”,则显示错误消息并将文件移动到存档或类似内容中.

解决方法

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);
        }
    }
}

猜你在找的Java相关文章