java - 捕获异常后恢复 try block 中的代码

标签 java exception try-catch

我对使用 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/

相关文章:

java - 信号量计数器和信号量方法整数参数之间的理解差异?

java - Spring事务管理器不是线程安全的?

java - ListView 不显示在屏幕上

c++ - `catch`语句在没有反射的情况下如何识别异常类型?

java - 用 try catch 做 while 无限

java - 带斜杠的 ActiveMQ jolokia 队列名称

c++ - C++ 异常中的异常

java - 将方法更改为java中的运行时异常

java - 循环 try-catch 不起作用

php - try/catch 在 PHP 中不起作用