gpt4 book ai didi

java - 如何忽略 Java 中抛出 RuntimeException 的函数调用?

转载 作者:行者123 更新时间:2023-12-01 10:06:11 24 4
gpt4 key购买 nike

我应该使用 tapestry-json 作为 Java 中的 JSON-API:

import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.json.JSONArray;

不幸的是,没有用于从 JSONArray 读取 JSONObjectoptJSONObject(int) 方法。方法 getJSONObject(int) 抛出 RuntimeException

... if there is no value for the index or if the value is not a JSONObject.

现在我想忽略所有这些条目。因此我将它包装在 try-catch-block 中。

JSONArray arr = new JSONArray("...");

for(int i = 0; i < arr.length(); i++) {

JSONObject currentEntry;
try {
// RuntimeException is thrown, if there is no value for the index or if the value is not a JSONObject.
currentEntry = arr.getJSONObject(i);
} catch (RuntimeException e) {
// Ignore this entry
continue;
}
/*
if( ... currentEntry ... ) {

}
*/
}

对我来说,这个解决方案看起来比它可能必须的更重。有没有更优雅的方法来忽略 RuntimeExceptions?

最佳答案

您可以使用get(int)方法从JSONArray获取原始对象,然后测试它是否是JSONObject。如果不是,则忽略。

像这样:

    JSONArray arr = new JSONArray("...");

for (int i = 0; i < arr.length(); i++) {
final Object io = arr.get(i);
if (io instanceof JSONObject){
// do something
}
}

btw getJSONObject(int) 执行相同的操作,但抛出异常而不是忽略。

关于java - 如何忽略 Java 中抛出 RuntimeException 的函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36451431/

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