对JAVA或异常处理不太熟悉。寻求一些关于什么是可以接受的、什么是不受欢迎的建议。
该场景,我正在构建一个生命游戏程序,我设置了条件来检查单元格是否超出范围,并且不尝试访问该“单元格”。我的问题是,使用 try catch 块代替 8 个条件是否可以接受,并且如果抛出 arrayOutOfBounds 异常则什么也不做。即忽略越界的单元格,或者这是不好的做法?例如...
try{
neighbors += cellIsAlive(row, col);
}catch(ArrayIndexOutofBoundsException e)
{
//dont do anything and continue counting neighbors
}
在这种情况下,cellIsAlive 方法检查多维数组中的位置,如果它还活着则返回 1,否则返回 0 并抛出 ArrayIndexOutofBoundsException。
以这种方式使用异常是个好主意还是不好的做法?
提前感谢您的任何意见。
这绝对是一个不好的做法。异常处理会消耗大量资源,并且应该仅在异常情况下使用(顾名思义)。
看看本书的第 9 章(如果可以的话,也可以阅读其余部分):
http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683/
您会发现您想要做的事情与用于说明您不应该做的事情的示例非常相似,我引用:
有一天,如果你运气不好,你可能会偶然发现一段代码
看起来像这样:
// Horrible abuse of exceptions. Don't ever do this!
try {
int i = 0;
while(true)
range[i++].climb();
} catch(ArrayIndexOutOfBoundsException e) {
}
这段代码有什么作用?从检查来看根本不明显,并且
这就是不使用它的充分理由(第 55 条)。原来是一个
循环遍历一个元素的构思非常糟糕的习惯用法
大批。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)