Java Catch错误,并继续运行到下一个

时间:2018-10-22 17:55:41

标签: java

在程序捕获并出错后,我找不到保持程序运行的方法。 例如,我有:

String[] num={"1","2","3","NotNumber","4","5"};       

我想将所有内容都转换为Integer,因此num[3]无效,但是在捕获到错误之后,我想继续运行到num[4]num[5]。 我该怎么办?

3 个答案:

答案 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());