为什么JSONObject的put方法抛出JSONException?

And*_*rei 7 java json

我在这里没有找到有关如何处理该异常的答案,但是没有解释为什么会首先发生这种情况。我有以下代码:

for (Map.Entry<String, Double> entry: qosMap.entrySet()) {
        JSONObject qosEntry = new JSONObject();
        try {
            qosEntry.put(entry.getKey(), entry.getValue());
        } catch (JSONException ex) {
            Logger.getLogger(JSONUtil.class.getName()).log(Level.SEVERE, null, ex);
        }
}
Run Code Online (Sandbox Code Playgroud)

qosMap永远不会为空,并且此映射中的数据将始终有效。

在什么情况下会引发异常?为什么需要额外的代码?

Ame*_*bsa 7

检查java文档

“如果一个值是一个非有限数或者一个名字是重复的。”

https://docs.oracle.com/middleware/maf222/mobile/api-ref/oracle/adfmf/json/JSONObject.html