故意抛出异常是不好的形式?

时间:2013-01-17 19:29:57

标签: java android json exception

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

 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将抛出一个excpetion,因为在索引i处没有任何内容。但是,稍后,如果将事物添加到数组中,则不会引发异常。

当然这个代码只是一个假设(我确定有更好的例子 - 有人可能有一个)但是作为形式/风格的问题,故意抛出异常是否可以?或者你应该避免把它们全部扔掉?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

在我看来,如果异常仅在特殊情况下抛出而不是常规方式,则可以退出循环。

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

=&GT;如果可能的话(并不太复杂,我强烈建议不要使用例外。