gpt4 book ai didi

java - 我可以在不嵌套 try 语句的情况下尝试多项操作吗?

转载 作者:行者123 更新时间:2023-12-01 22:54:56 24 4
gpt4 key购买 nike

我的程序正在处理一些 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;
}
}
}

我还可以尝试其他一些方法来获取图像名称。但程序会变得非常难看。

是否有一种语法可以尝试多项操作直到其中一项成功?就我而言,return 语句在成功时会中断程序,但情况可能并非总是如此。

最佳答案

您可以使用 .has() 或 .isNull() 方法检查可能的键,而不是使用多个 try 语句。

更多信息: http://www.json.org/javadoc/org/json/JSONObject.html#has(java.lang.String) http://www.json.org/javadoc/org/json/JSONObject.html#isNull(java.lang.String)

例如:

@Override
public String createImgName() {
try {
JSONObject data = getJSONData();
// data["image"]["full"]
if (data.has("image")) {
return data.getJSONObject("image").getString("full");
} else if (data.has("id")) {
return data.getJSONObject("id")+".png";
}
}
catch(JSONException e) {
return null;
}
}

关于java - 我可以在不嵌套 try 语句的情况下尝试多项操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com