【发布时间】:2013-01-17 19:29:56
【问题描述】:
做一些你知道会引发异常的事情(假设你处理得当)是不是很糟糕?例如:
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 处没有任何内容。但是,稍后,如果将事物添加到数组中,它不会抛出异常。
当然,这段代码只是一个假设(我相信有更好的例子——有人可能有),但就形式/风格而言,是否可以故意抛出异常?还是应该避免将它们全部放在一起?
【问题讨论】:
-
没关系,但一般不应该。这个post
-
我不同意这没关系,但同意该帖子中的内容
-
当前样本不会抛出。您不会进入循环,因为 stuff.length() == 0。也就是说,仅记录通常不是正确的异常处理。案例要么是有效的,应该正常处理,要么不是,你应该做的不仅仅是忽略它。
-
好吧,我的例子很糟糕。我试图想出一些东西来说明这个问题。我想我想了解的异常应该仅用于指示发生了不好的事情,或者在记录错误消息等之外是否有合法目的。
-
它们通常不仅仅用于记录错误消息。例如,如果一个流因意外原因而死亡,您需要捕获它,干净地关闭它,然后返回到有效状态。您还想记录,但这通常不是主要目标。异常处理通常需要处理,这通常意味着不仅仅是忽略或记录。
标签: java android json exception