0

做一些你知道会引发异常的事情是不好的形式(假设你处理得当)?例如:

 JSONArray stuff = new JSONArray();
 JSONArray otherStuff = new JSONArray();
 try{
     for(i = 0; i < stuff.length(); i++){
         JSONObject a = stuff.getJSONObject(i);
         otherStuff.add(a);          
      }
 } catch (JSONException e){
     Log.e("FAIL", e.toString());
 }

//more code adding things to array later on

在这种情况下,当您第一次运行序列时,数组将为空,getJSONObject 会抛出异常,因为索引 i 处没有任何内容。但是,稍后,如果将事物添加到数组中,则不会引发异常。

当然,这段代码只是一个假设(我相信有更好的例子——有人可能有),但就形式/风格而言,是否可以故意抛出异常?还是应该避免将它们全部放在一起?

4

2 回答 2

4

根据我的经验,使用异常作为流控制通常被认为是不好的做法。它们应保留用于特殊情况。

于 2013-01-17T19:32:17.003 回答
1

在我看来,如果仅在例外情况下抛出异常而不是作为退出循环的常规方式,那是可以的。

但请注意:创建、抛出和捕获异常并不快。

=> 如果可能(并且不太复杂,我强烈建议不要使用异常。

于 2013-01-17T19:33:29.730 回答