gpt4 book ai didi

java - 程序是否识别出它上次崩溃了?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:28 25 4
gpt4 key购买 nike

让 (Java) 程序识别它上次运行时崩溃并显示一条消息“看起来这个程序上次在你身上崩溃了”的最好方法是什么。在这里报告这个问题:bla@foo .com ....”

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

  • 让程序在启动时存储一个临时 key 文件,然后在定期关闭时将其删除。如果文件在启动时存在,则显示消息。
  • 识别死锁并在这种情况下存储一个“错误文件”。如果启动时存在“错误文件”,则显示错误消息并将文件移动到存档或类似文件中。

最佳答案

Java 程序可能崩溃的三个原因:

  • 未处理的 RuntimeException。这很容易通过 main 中的 try-catch 解决。
  • 未处理的错误。这些很少见,但也可以在 main 中找到。我通常在 main 中捕获 Throwable。请参阅下面的模板。
  • 如果您使用线程,请查看 Thread.setDefaultUncaughtExceptionHandler() .
  • VM 中的错误,或程序被用户杀死,或硬件暴力关机。这些将导致无法捕获的崩溃。在这里,您最好的选择是使用 new File(...).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 - 程序是否识别出它上次崩溃了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com