如果发生异常,如何继续循环迭代?

时间:2018-07-22 19:42:16

标签: java loops try-catch

嘿,我已经完全完成了try-catch块,但是有疑问。 我想计算一个字符串包含多少个单词和数字。 为此,我想使用try-catch块。我将String解析为一个int,如果输出为false,我想计算catch块逻辑中的单词数。但是在程序进入catch块之后,程序退出。我想继续在捕获到的错误之后循环遍历。我怎样才能做到这一点?

    Scanner odczyt = new Scanner(System.in);
    String zdanie = odczyt.nextLine();
    String[] podzdania = zdanie.split(" ");
    boolean exception = false;
    int numberword = 0;

    try {

        for (int i = 0; i < podzdania.length; i++) {
            Integer.parseInt(podzdania[i]);
        }

    } catch (NumberFormatException e) {

        numberword++;

    }

1 个答案:

答案 0 :(得分:6)

在循环中移动try-catch块:

for (int i = 0; i < podzdania.length; i++) {
  try {
    Integer.parseInt(podzdania[i]);
  } catch (NumberFormatException e) {
    numberword++;
  }
}

我会避免使用异常作为流控制机制。在实际解析字符串之前,请检查this StackOverflow question来验证字符串。