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

kry*_*sss 0 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++;

    }
Run Code Online (Sandbox Code Playgroud)

Ped*_*dro 6

在循环中移动try-catch块:

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

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

  • @davidxxx但它违背了Stack Overflow的理念,它将成为一个高质量的Q&A存储库.在许多帖子中分隔相关内容会导致帖子膨胀并使内容更难找到.但是,Stack Overflow是一个破碎的系统,因此忽略了这些操作的原因[提到时](https://meta.stackoverflow.com/questions/357021/reputable-people-keep-answering-duplicates-whats-the-solution) .如果人们因找到重复项和配对相关内容而获得奖励,那么佩德罗就不必诉诸于此. (2认同)