加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:52:02 所属栏目:Java 来源:网络整理
导读:让( Java)程序在上次运行时识别崩溃的最佳方法是什么,并显示一条消息“看起来这个程序上次崩溃了.请在这里报告此问题:bla@foo.com. ……” 有推荐的方法吗? (坏?)我的想法是: 让程序在启动时存储临时密钥文件,然后在定期关闭时将其删除.如果文件在启动时
让( 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);
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读