在程序捕获并出错后,我找不到保持程序运行的方法。 例如,我有:
String[] num={"1","2","3","NotNumber","4","5"};
我想将所有内容都转换为Integer,因此num[3]
无效,但是在捕获到错误之后,我想继续运行到num[4]
和num[5]
。
我该怎么办?
答案 0 :(得分:0)
您可以使用以下代码进行操作:
for (String str : num) {
try {
// use this as per your requirement
Integer.parseInt(str);
} catch (Exception e) {
// do something
}
}
这里,我们在try-catch
块内遍历数组中的每个字符串。任何异常都将被捕获,循环将继续前进到array
中的下一个元素。
这样,异常不会终止处理数组中的所有元素。
答案 1 :(得分:0)
如果您已经展示了到目前为止所做的尝试,那将会有所帮助,但是最简单的解决方案是将int.parse()
包裹在try/catch
块中并吞下异常。
for(int i = 0; i < items.length; i++) {
try {
newItems[i] = Itemger.parseInt(items[i]);
catch(Exception ex) {
// do nothing
}
}
答案 2 :(得分:0)
将try-catch
块放入迭代中
JAVA 7
List<Integer> intList = new ArrayList<>();
for(String s : num) {
try {
Integer n = Integer.valueOf(s);
intList.add(n);
} catch (Exception ex) { continue; }
}
JAVA 8流
List<Integer> intList = Arrays.asList(num)
.stream()
.map(s -> {
try {
return Integer.valueOf(s);
} catch(Exception ex) { return null;}
})
.filter(i -> i != null)
.collect(Collectors.toList());