做一些你知道会引发异常的事情(假设你正确处理它)是不好的形式?例如:
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处没有任何内容。但是,稍后,如果将事物添加到数组中,则不会引发异常。
当然这个代码只是一个假设(我确定有更好的例子 - 有人可能有一个)但是作为形式/风格的问题,故意抛出异常是否可以?或者你应该避免把它们全部扔掉?
答案 0 :(得分:4)
根据我的经验,使用Exceptions作为流量控制通常被认为是不好的做法。它们应该保留用于特殊情况。
答案 1 :(得分:1)
在我看来,如果异常仅在特殊情况下抛出而不是常规方式,则可以退出循环。
但请注意:创建,抛出和捕获异常并不快。
=&GT;如果可能的话(并不太复杂,我强烈建议不要使用例外。