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

Java 方法太复杂,无法使用Try,Catch进行分析,java,Java,我正在尝试制作一个程序,测试数组中的数字是否为负数,如果为负数,我想使用try,catch 更新: 我已经改变了代码,但是当发现错误时,循环停止并且不再继续,当显示错误时,如何使for循环移动到下一个int public class SomeClass { int[] table; int size; public SomeClass(int size) { this.size = size; table = new int[size];

我正在尝试制作一个程序,测试数组中的数字是否为负数,如果为负数,我想使用try,catch

更新:

我已经改变了代码,但是当发现错误时,循环停止并且不再继续,当显示错误时,如何使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");
        }

    }
}
公共类SomeClass{
int[]表;
整数大小;
公共类(整数大小){
这个。大小=大小;
表=新整数[大小];
}
公共静态void main(字符串[]args){
int[]大小={5,3,-2,2,6,-4};
某类测试;
试一试{
对于(int i=0;i<6;i++){
testInst=新的SomeClass(尺寸[i]);
System.out.println(“新示例大小”+测试大小);
}
}
捕获(例外e){
System.out.println(“错误”);
}
}
}

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

您的循环在try块内,这意味着如果try块内发生错误,它将跳转到catch块(循环外)

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

例如:

for (int i = 0; i < 6; i++) {
    if(sizes[i] < 0) {
        // Negative value
    }
    else {
        // Positive value
    }
}
for(int i=0;i<6;i++){
如果(大小[i]<0){
//负值
}
否则{
//正值
}
}

对不起,我的错——我对try/catch基本上感到困惑。但是,话虽如此,您的
Println(…)
语句将无法编译。请将其更改为
Println(…)
。否则,您的错误可能来自其他地方,来自未显示的代码。对其进行了更改但没有帮助是的,我在该代码中没有看到导致您描述的错误的任何内容,事实上,我从未在我的代码中看到该错误。我担心未显示的代码中会出现其他错误。我已更新代码,但for循环已中断?@user2975192最新版本(第12版)的
IntelliJ
中没有出现此问题,因此升级是另一个解决方案…IntelliJ方面的工作非常糟糕。