我对使用 try/catch block 相当陌生,所以我不知道如何准确地执行此命令。
如果我发现错误,我想等待一段时间(10 秒左右),然后尝试运行同一行代码以尝试在我的 try block 中继续。我的程序是用Java 编写的。我看过这两个页面:Page1 , Page2 ,但它们都不是 Java 语言。我也看过this ,但他们没有在使用 catch block 中解决。这是否可以做到,以及如何在我的 catch block 中实现它,而不是仅仅打印错误?
最佳答案
99% 的情况下,您希望在 try-catch
之后重新运行代码块,而不是出现异常的行。
如果您需要从该行运行,则表明您将代码放入仅封装该代码的另一个方法中(也许也将 try-catch
移到那里)。
我的建议是这样的:
void method(){
try{
codeline1;
codeline2;
codeline3;
codeline4;
}
catch(Exception ex)
{
restorClassStateBeforeCodeLine1();
method();
}
}
通过这个片段,我建议将整个 try-catch
放在一个单独的方法中。
等待随机间隔也是不好的做法。您永远不知道 10 秒是否每次都正确或根本不正确。
我建议反对的另一种方式是:
label: {
try {
...
if (condition)
break label;
...
} catch (Exception e) {
...
}
}
它使用 java labels重试该部分。我从未尝试过,但可以将 break
移动到 catch
中,将标签移动到 try
中。
关于java - 捕获异常后恢复 try block 中的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117622/