我有时会发现自己处于如下情景中。尽可能简单地陈述问题
"我有时会在try / catch语句中创建一个Java代码块。我没有使用捕获物,所以我把它留空了。为什么这是错的?"
boolean operationSucceeded = false;
JSONObject response = null;
try{ //Java wants you to surround JSONObject parsing with try/catch, and they usually have you surround lots of other things in try/catches
response = new JSONObject(responseFromServerAboveNotRelevantToThisCodeBlock)
//do something with response
operationSucceeded = true;
}
catch (JSONException e) {
//what would happen here??
}
所以在这种情况下,我没有使用我能想到的catch块。我不需要在任何地方登录,并且没有再次将状态设置为false,因为我已经假设它是假的,并且如果操作有效则设置为true (最后一行代码)。
所以我只有一个空的捕获,这总是很糟糕,代码分析器说错了,等等。我该怎么办?我的代码和思路都是错误的,需要在逻辑上进行重组,以便在我的捕获中实际发生可操作的事情吗?
非常感谢。
答案 0 :(得分:1)
在我看来,try-catch语句的目的是防止程序崩溃,冻结等等,即使出现错误也是如此。你可以做类似的事情," e.printstacktrace()"或者你可以继续,但最好让你的代码表明你希望它做什么。
答案 1 :(得分:0)
始终处理可能的错误是一种很好的做法,日志对于更快地发现错误非常有用。
我认为那更好......
boolean operationSucceeded = true;
JSONObject response = null;
try{ //Java wants you to surround JSONObject parsing with try/catch, and they usually have you surround lots of other things in try/catches
response = new JSONObject(responseFromServerAboveNotRelevantToThisCodeBlock)
//do something with response
}
catch (JSONException e) {
operationSucceeded = false;
// Some log here
}
答案 2 :(得分:0)
我同意,当发现异常时,通常没有任何相关性可以/应该做。甚至记录某些内容有时也是不可取的。
但是当参与代码审查时,我至少会期待一条评论,说明该异常被故意忽略。如果它不是一个明显的案例,我希望评论说明为什么它被故意忽略。
答案 3 :(得分:0)
Try / Catch块对于处理程序因异常而终止非常有用。 try块中的代码可能会抛出异常,并且可以实现catch块以在异常事件中继续执行程序。在您的情况下,虽然没有必要再次将标志设置为false,但您可以编写一些有用的代码来通知用户代码将要终止的原因。它对开发人员来说也很有用,因为你可以通过编写e.printStackTrace()来找出抛出的异常。