我有这个方法,它需要二维数组的两个实例将它们加在一起并将总和存储在一个新数组中,这两个数组必须具有相同的大小,例如(相同的行数和列数)如果不是,则应该抛出我定义的异常。仅当第一个数组具有不同数量的行而不是列时,我的方法才会引发异常,例如仅当我传递这些数组时才会引发异常: a[4][4] b[5][4] 但不是这些数组:a[4][5] b[4][5],有人可以解释发生了什么吗?我是否以正确的方式抛出异常?
public int[][] add(int[][] a, int[][] b) throws IncompatibleArgumentsException {
int[][] sum = new int[a.length][b.length];
if (a.length == b.length) {
System.out.println("The Sum of the arrays is: ");
System.out.println(" --------------- ");
for (int row = 0; row < a.length; row++) {
for (int col = 0; col < b.length; col++) {
sum[row][col] = a[row][col] + b[row][col];
System.out.println(" | " + a[row][col] + " + " + b[row][col] + " = " + sum[row][col] + " | ");
System.out.println(" --------------- ");
}
}
} else {
throw new IncompatibleArgumentsException("Arrays have different size");
}
return sum;
}
这就是我调用该方法的方式:
public Implementation() {
int[][] x = new int[1][1];
x[0][0] = 1;
int[][] y = new int[1][2];
y[0][0] = 1;
y[0][1] = 3;
add(x, y);
}
最佳答案
您的支票有误。你应该在顶部做什么:
if (a.length != b.length || a[0].length != b[0].length) {
throw new IncompatibleArgumentsException(...);
}
关于JAVA 数组异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307387/