Java异常处理(json示例)
首先,我想对这样一个模棱两可的标题说声抱歉 我想知道如何处理以下场景中的异常。。。 我有一个Struts操作,它从EJB接收字符串:Java异常处理(json示例),java,exception-handling,Java,Exception Handling,首先,我想对这样一个模棱两可的标题说声抱歉 我想知道如何处理以下场景中的异常。。。 我有一个Struts操作,它从EJB接收字符串: try{ JSONObject data = new JSONObject(result); //result is String String gatewayId = data.getString("gatewayId"); session.setAttribute("gatewayId", gatewayId); }catch(
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.*;
如果json是:
{"gatewayId":100, "mask":4}
在案例B中,json是:
{"success":false, "errorDesc":"bla bla"}
如果gatewayId在JSON中,我没有问题,但问题是从EJB接收的JSON可以(但不一定)具有key:value对
如果有一个布尔JsonObject.hasString()方法,由于首先在If/else If语句中检查字符串的存在性,我将不会有异常,但这样我无法避免异常
我认为我可以做的第一件事是根据异常类型使用不同的catch块,但似乎所有异常都是genericJSONException类型,而且我不应该在catch块中放入任何JSON处理代码,因为该代码也可能抛出它的异常
请记住,我不是在寻找JSON问题的确切解决方案,而是在没有帮助您避免异常的函数的情况下如何解决此类问题的一般性解释
我希望我的问题有道理……试试看
data.has("gatewayId");
这会有帮助。在放入json对象之前,您能显示结果并让我知道您有什么吗?Luigi,为了完整性,请包含允许您引用JSONObject的导入语句。另外,有一个正在处理的JSON字符串的简化示例也是很有用的。。。这将是这个具体问题的解决方案,但假设库中没有data.has()方法。我知道这将是一个糟糕的库:)如果找不到json键,将引发异常。。。基本上,问题是您是否可以使用catch块作为流量控制?不知怎的?:)