JAVA 数组异常

标签 java arrays exception

我有这个方法,它需要二维数组的两个实例将它们加在一起并将总和存储在一个新数组中,这两个数组必须具有相同的大小,例如(相同的行数和列数)如果不是,则应该抛出我定义的异常。仅当第一个数组具有不同数量的行而不是列时,我的方法才会引发异常,例如仅当我传递这些数组时才会引发异常: 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/

相关文章:

JavaFX 与 Java Swing 在行业中的使用

Javascript 抽认卡学习应用程序

python - 总和小于等于给定总和的最大子集

c# - BLL 返回字符串或 DTO

python - 如何改进 python/django 中的异常处理

java - 想要在jsp页面添加动态内容

java - 将 .class 文件转换为 .java 文件

java - Hibernate:无法从结果集中读取列值:无法转换为内部表示

javascript - 将对象数组拆分为 2 小时跨度组

python - 使用 python 遍历文件时忽略错误引发