首页 > 解决方案 > 如果发生异常,如何继续循环迭代?

问题描述

嘿,我已经完全完成了我的 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++;

    }

标签: javaloopstry-catch

解决方案


在循环内移动 try-catch 块:

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

不过,我会避免使用异常作为流控制机制。在实际解析之前检查这个 StackOverflow 问题以获取验证字符串的替代方法。


推荐阅读