Java 如果我的应用程序崩溃,则删除文件(2)
好的,我差不多拿到这个了。但似乎有一些逻辑错误,我无法回避。请注意,我不能使用try/catch。不用问为什么Java 如果我的应用程序崩溃,则删除文件(2),java,error-handling,crash,Java,Error Handling,Crash,好的,我差不多拿到这个了。但似乎有一些逻辑错误,我无法回避。请注意,我不能使用try/catch。不用问为什么 编辑 我希望它删除导致我崩溃的文件。。如果应用程序崩溃,但似乎无法工作。我叫错了还是怎么了?迷茫 最终编辑 好吧,在玩了很多之后,我终于让它开始工作了!!谢谢大家从我看到的最后一个问题来看,您 处理图像 一个或多个映像将使JVM崩溃 我们无法捕获该异常/错误,并且 我们希望在下次运行时删除损坏的映像 一个简单的解决方案如下: 每次从图像文件读取字节之前,都要将该图像的名称保留到文
编辑 我希望它删除导致我崩溃的文件。。如果应用程序崩溃,但似乎无法工作。我叫错了还是怎么了?迷茫 最终编辑
好吧,在玩了很多之后,我终于让它开始工作了!!谢谢大家从我看到的最后一个问题来看,您
- 处理图像
- 一个或多个映像将使JVM崩溃
- 我们无法捕获该异常/错误,并且
- 我们希望在下次运行时删除损坏的映像
processingImage.txt
)processingImage.txt
processingImage.txt
包含有问题图像的名称processingImage.txt
,读取图像名称,删除图像并删除processingImage.txt
对此我有一种不好的感觉,但您可以在应用程序上添加一个关闭挂钩。(请注意,在处理关闭钩子时,杀死应用程序的唯一方法是通过任务管理器-因此请确保关闭钩子真正工作/不会永远工作/不会导致死锁) 以下
main
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
System.out.println("I'm called on shutown.");
}
});
throw new RuntimeException("Uncaught Exception");
}
打印此文件:
Exception in thread "main" java.lang.RuntimeException: Uncaught Exception
at stackoverflowtests.ShutdownHookTester.main(ShutdownHookTester.java:11)
I'm called on shutown.
为什么要删除它?你就不能清除它吗?该应用程序以数组方式处理图片,并且所有图片都在一个文件夹中,因此我无法清除显示流程的整个folderMore代码。我在哪里声明主文件夹?因为我的应用程序只使用方法,所以主要的目的只是去集中(并在发布之前进行测试),如果应用程序因未捕获的异常而崩溃,那么钩子也会被执行。
Runtime.getRuntime().addshutdownhook(…)
方法可以从任何地方调用。如果严格遵循此算法,它将只删除processingImage.txt
中名为的文件(除非文件夹中的每个文件都使程序崩溃,否则它将始终删除第一个图像;)
Exception in thread "main" java.lang.RuntimeException: Uncaught Exception
at stackoverflowtests.ShutdownHookTester.main(ShutdownHookTester.java:11)
I'm called on shutown.