方法太复杂,无法使用Try,Catch进行分析

时间:2014-04-22 00:22:11

标签: java

我正在尝试制作一个程序来测试数组中的数字是否为负数并且想要使用try,如果它是负数则捕获。

更新:

我已经更改了代码,但是当捕获到错误时循环停止并且不继续时,如何在显示错误时将for循环移动到下一个int?

public class SomeClass {
    int[] table;
    int size;

    public SomeClass(int size) {
        this.size = size;
        table = new int[size];
    }

    public static void main(String[] args) {
        int[] sizes = {5, 3, -2, 2, 6, -4};
        SomeClass testInst;
        try {
            for (int i = 0; i < 6; i++) {
                testInst = new SomeClass(sizes[i]);

                System.out.println("New example size " + testInst.size);
            }
        }
        catch (Exception e) {
            System.out.println("Error");
        }

    }
}

2 个答案:

答案 0 :(得分:1)

当循环中出现try-catch块时,IntelliJ IDE会生成此消息。 original code对于IntelliJ的数据流分析算法而言过于复杂。升级到至少版本12应该可以消除此错误。

答案 1 :(得分:0)

你在try块中有你的循环,这意味着如果try块内发生错误,那么它将跳转到catch块(循环外部)。

最好的方法是将try块放在循环中。或者只是不使用try / catch。

示例:

for (int i = 0; i < 6; i++) {
    if(sizes[i] < 0) {
        // Negative value
    }
    else {
        // Positive value
    }
}