Java 方法太复杂,无法使用Try,Catch进行分析
我正在尝试制作一个程序,测试数组中的数字是否为负数,如果为负数,我想使用try,catch 更新: 我已经改变了代码,但是当发现错误时,循环停止并且不再继续,当显示错误时,如何使for循环移动到下一个intJava 方法太复杂,无法使用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];
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方面的工作非常糟糕。