在一般情况下和下一个示例中,请求宽恕而不是许可是Java的一种好习惯吗?
示例是:
try {
Cell value = array2D[rowIndex][columnIndex];
}
catch (ArrayIndexOutOfBoundsException e) {}
如您在上面的代码中看到的,我们从
value
中获得array2D
。如果value
超出范围,我们什么也不做。我问这个问题,是因为在某些情况下(例如,在
EAFP
中查找给定LBYL
的所有邻居),实现Cell
比array2D
(在跳转之前先看)要容易得多。 最佳答案
您可以通过检查数组的大小来避免引发异常的开销:
if(rowIndex < array2D.length)
{
if(columnIndex < array2D[rowIndex].length)
{
// you are safe here
}
}