【发布时间】:2014-03-21 01:06:10
【问题描述】:
不太熟悉 JAVA 或异常处理。寻找一些关于什么是可以接受的,什么是不受欢迎的建议。
场景,我正在构建一个生命游戏程序,我设置了条件来检查一个单元格是否会越界并且不尝试访问那个“单元格”。我的问题是,使用 try catch 块而不是 8 个条件是否可以接受,并且如果抛出 arrayOutOfBounds 异常则什么都不做。即忽略单元格越界,或者这是不好的做法?比如……
try{
neighbors += cellIsAlive(row, col);
}catch(ArrayIndexOutofBoundsException e)
{
//dont do anything and continue counting neighbors
}
在这种情况下,cellIsAlive 方法检查多维数组中的位置,如果它还活着则返回 1,否则返回 0 并抛出 ArrayIndexOutofBoundsException。
以这种方式使用异常是个好主意还是不好的做法?
提前感谢您的任何意见。
【问题讨论】:
-
哈哈对不起,我的 php 出来了。将编辑。
-
Exceptions 用于处理...exceptions。但是既然你能知道问题,那你最好简单检查一下索引。。
-
你永远不应该吞下异常,你根本不会!
-
@Maroun 我在想,但这似乎会大大简化代码并使其更具可读性,就像我说我在这种情况下没有那么有经验。似乎每个人都同意条件更好。
-
一般来说,使用异常来控制程序流是不受欢迎的,因为检查边界通常比创建然后捕获异常要便宜得多(尽管我相信成本随着 JVM 下降已经进化)。