首先,我想对这样一个模糊的标题感到抱歉......
我想知道如何处理以下场景中的异常...... 我有一个从EJB接收字符串的Struts操作:
try{
JSONObject data = new JSONObject(result); //result is String
String gatewayId = data.getString("gatewayId");
session.setAttribute("gatewayId", gatewayId);
}catch(Exception e){
System.out.println(e.getMessage());
}
修改 进口是:
import org.apache.struts2.json.*;
import org.json.*;
如果A json是:
{"gatewayId":100, "mask":4}
如果B json是:
{"success":false, "errorDesc":"bla bla"}
如果 gatewayId 在JSON中我没有问题,但问题是从EJB收到的JSON可以(但不一定)拥有该键:值对。
如果有一个布尔JsonObject.hasString()方法,我会没有例外,这要归功于在if / else if语句中首先检查字符串是否存在,但这样我无法避免例外...
我认为我能做的第一件事就是根据异常类型设置不同的catch块,但似乎所有异常都是泛型 JSONException 类型,而且我也不应该放任何JSON处理catch块中的代码,因为该代码也可以抛出异常。
请记住,我不是在寻找我的JSON问题的确切解决方案,而是在没有帮助您避免例外的函数时如何解决此类问题的一般解释...
我希望我的问题有道理......
答案 0 :(得分:3)
尝试
data.has("gatewayId");
这会有所帮助。