java - 如果发生异常,如何继续循环迭代?
问题描述
嘿,我已经完全完成了我的 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++;
}
解决方案
在循环内移动 try-catch 块:
for (int i = 0; i < podzdania.length; i++) {
try {
Integer.parseInt(podzdania[i]);
} catch (NumberFormatException e) {
numberword++;
}
}
不过,我会避免使用异常作为流控制机制。在实际解析之前检查这个 StackOverflow 问题以获取验证字符串的替代方法。
推荐阅读
- javascript - 动态表中的 Onchange 仅更新第一行中的输入文本框
- tfs-2017 - TFS 2017.1 中缺少 Nuget 服务端点
- python - 如何在图形(.pb)中重新训练模型?
- office-js - Office javascript中的文档保存事件
- android - 从片段中引用 recyclerView 元素
- php - 为什么注册表单中的这个ajax不会读取php
- html - 如何在 html & css 的侧边菜单中创建子菜单
- python-3.x - kNN 预测 LPR
- java - java:让程序等到转换完成
- ruby - rescue => e 捕获什么类型的异常?