java - 在 Java 中检查越界

标签 java arrays indexoutofboundsexception

我正在尝试检查数组位置是否越界,最简单的方法是什么?

int[] arr;
populate(arr);
if(arr[-1] == null)
//out of bounds!

这样的东西行得通吗?

我很确定这可以通过 trycatch 或扫描仪来完成,但是对于一个简单的小程序,还有其他方法吗?

最佳答案

绝对不要为此使用try-catch。只需使用:

boolean inBounds = (index >= 0) && (index < array.length);

使用 try-catch 实现该方法需要捕获 ArrayIndexOutOfBoundsException ,这是一个未经检查的异常(即 RuntimeException 的子类)。永远不应该(或者至少非常)捕获和处理此类异常。相反,他们应该首先被阻止。

换句话说,未经检查的异常是您的程序不希望从中恢复的异常。现在,这里和那里可能会有异常(exception)(没有双关语)。例如,通过调用 Integer.parseInt() 并捕获潜在的 NumberFormatException(未检查).这被认为是可以的,但在做这样的事情之前一定要三思。

关于java - 在 Java 中检查越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672301/

相关文章:

c - 如何在 C 中使用 malloc 和 realloc 正确分配结构中的数组?

java - 如何克服 Integer.parseInt(args[0]) 的 ArrayIndexOutOfBoundException?

java - 创建未知长度的数组

arrays - Delphi 10. TCustomWinSocket 数组使用时访问冲突

javascript - 无法查找字符串是否包含子字符串?

java - 查找字符串中字符的最高连续出现次数会导致字符串索引超出范围

java - MySQL 和 JApplet(是的,另一个)

java - 错误的越界异常

java - 使用 Lombok 记录器记录时有没有办法屏蔽类值?

java - 在数组中搜索值的总和