当前位置: 首页 > 知识库问答 >
问题:

异常正在执行,即使它不应该[重复]

聂迪
2023-03-14

返回位于给定的基于一的行和列索引处的该矩阵的条目。如果行或列不是1或2,则引发异常。

public double get(int row, int col){
   if (row != 1 || row != 2){
      throw IndexOutOfBoundsException("Row not valid");
   }

   if (col != 1 || col != 2){
      throw IndexOutOfBoundException("Column not valid");
   }

   return data[row - 1][col - 1];
}

这是我的方法的代码,但即使我使用参数row=1和col=2调用该方法;它显示了IndexOutOfBoundsException。有没有办法解决这个问题?

共有1个答案

宓博实
2023-03-14

假设矩阵数据足够大,尝试使用

public double get(int row, int col) {
   if (row != 1 && row != 2) {
      throw new IndexOutOfBoundsException("Row not valid");
   }
   if (col != 1 && col != 2) {
      throw new IndexOutOfBoundException("Column not valid");
   }
   return data[row - 1][col - 1];
}

而不是链接一系列的条件,你也可以考虑为每个有效的列和行定义一个集合:

private static final Set<Integer> VALID_ROWS_TO_GET = Set.of(1, 2);
private static final Set<Integer> VALID_COLS_TO_GET = Set.of(1, 2);

...

public double get(int row, int col) {
    if (!VALID_ROWS_TO_GET.contains(row)) {
        throw new IndexOutOfBoundsException("Row not valid");
    }
    if (!VALID_COLS_TO_GET.contains(col)) {
        throw new IndexOutOfBoundsException("Column not valid");
    }
    return data[row - 1][col - 1];
}

 类似资料:
  • 返回位于给定的基于一的行和列索引处的该矩阵的条目。如果行或列不是1或2,则引发异常。 这是我的方法的代码,但即使我使用参数row=1和col=2调用该方法;它显示了IndexOutOfBoundsException。有没有办法解决这个问题?

  • 您好,感谢您能提供的任何帮助。 最重要的是,我已经重新安装了java和maven,并多次重启了我的计算机和命令行。

  • 问题内容: 我正在运行一个简单的Calculator应用程序来学习Java的异常处理。我设置了两个要处理的异常:InputMismatchException和ArithmeticException,用于除以零。 ArithmeticException得到处理,并且do-while循环继续。但是在捕获InputMismatchException之后,执行将终止而不是继续循环。 码: 输出: 预期:在

  • 问题内容: 我有以下代码,我希望它抛出,但运行成功。为什么会这样? 问题答案: 的上方法删除指定位置的元素。在开始循环之前,您的列表如下所示: 然后,在列表上启动迭代器: 您的环然后删除 位置1处的元件 ,这是数字2: 在下一个隐式调用上,迭代器返回,然后循环终止。 如果将更多元素添加到列表中,则会得到一个。然后隐式将抛出。 请注意,从Javadoc 到JCF: 注意,迭代器的快速失败行为无法得到

  • 我觉得我一定忽略了什么。 null Grunt@0.4.2应该匹配所有这些依赖项,但npm说它不匹配,安装失败。我是不是忽略了什么? 根据请求,我的package.json文件:

  • 问题内容: 我正在编写一个(貌似)简单明了的SQL代码段,该代码段在确保该列存在之后将其删除。 问题:如果列不存在,代码 内 IF子句抱怨说,它无法找到列!好了, 卫生署 ,这就是为什么它的IF子句中! 所以我的问题是,为什么不应该执行的一段代码会出现错误? 这是代码段: …这是错误: 我正在使用Microsoft SQL Server 2005 Express Edition。 问题答案: IF