何时在Java中使用异常(示例)

six*_*ude 12 java exception-handling exception

我知道这是不好的做法,虽然我知道我无法解释原因.

int [] intArr = ...
...
try{
   int i = 0;
   while(true){
      System.out.println(intArr[i++]);
   }
}catch(ArrayIndexOutOfBoundsException e){}
Run Code Online (Sandbox Code Playgroud)

我认为你只应该对不应该发生的事情使用例外.我问这个问题是因为我认为我有时会使用异常错误.如果你的编程运行一个标准的情况应该抛出异常?

这似乎是相关的: 防止异常与捕获Java中的异常

Pét*_*rök 20

你是对的:异常是指例外情况.使用它们来控制正常的控制流程不仅会模糊代码的意图(这已经足以使它取消资格),而且速度也慢得多,因为抛出和捕获异常代价很高.

标准习语(在Java5及以上版本中)使用foreach循环:

for (int i : intArr) {
  System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)


Alb*_*gni 5

这是错误的,因为你知道最终循环将到达最后一个元素intArr,所以没有什么特别之处,你实际上期待这种行为.


Bal*_*usC 5

当涉及a时,捕获异常只是一种不好的做法RuntimeException.在ArrayIndexOutOfBoundsException其中你想赶上有一个.

RuntimeExceptions识别由代码流中的错误引起的可编程恢复问题.你不应该赶上他们解决这些问题,但通过写适当的代码,并利用流量控制语句一样if/else,while,for,等.

也可以看看: