我正在尝试检查数组位置是否越界,最简单的方法是什么?
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/