【发布时间】:2015-05-01 18:01:57
【问题描述】:
我的程序正在处理一些 JSON 数据。我希望程序随着时间的推移变得非常稳定,并且 JSON 数据可以随着源的更新和改进而改变。这是从数据中返回一些图像文件名的当前函数:
@Override
public String createImgName() {
try {
// data["image"]["full"]
return getJSONData().getJSONObject("image").getString("full");
}
catch(JSONException e) {
try {
// data["id"] + ".png"
return getJSONData().getJSONObject("id")+".png";
}
catch(JSONException e2) {
return null;
}
}
}
我可以通过try 获取更多图片名称。但是程序会变得非常丑陋。
有没有trying 多个东西直到一个成功的语法?在我的例子中,return 语句会在成功时中断程序,但情况可能并非总是如此。
【问题讨论】:
-
简而言之,答案是否定的——在一个成功之前,你不能尝试多种方法。
-
请注意,您使用
try-catch作为“流控制”。这几乎肯定不是您想要的,最佳实践建议避免它。 -
您也可以在接球后/接球外进行第二次尝试。如果没有发生异常,代码将返回。存在一些差异,但尚不清楚哪个更好。当然,首先避免异常会更好。
-
@NathanielFord 我明白你的意思,但是 JSON 库几乎在每个操作上都会抛出异常,这迫使我编写这样的代码。
标签: java exception-handling try-catch