【发布时间】:2013-07-31 10:20:27
【问题描述】:
我正在尝试编写一个可以尝试 JSON 对象的代码,如果格式错误,请以某种方式通知用户。
代码是:
public boolean sjekkSporingsNummer (JSONObject object){ //object is passed correct
Boolean riktigSporing = null;
riktigSporing = true; //riktig sporing is set to true
//if its true the json is correct
try {
JSONArray consignmentSet = object.getJSONArray("consignmentSet");
JSONObject object1 = consignmentSet.getJSONObject(0);
riktigSporing = true;
}catch (Exception e){ //skips straigt to here
e.printStackTrace();
riktigSporing = false;
}
return riktigSporing;
如果失败后:
07-31 12:34:07.243 15479-15479/com.example.posten E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
让我觉得奇怪的是,我的应用跳过了 try 并直接进入 return 语句。
我希望它尝试并且失败将“riktigSporing”设置为 false。
我做错了什么?
【问题讨论】:
-
你怎么知道它跳过了尝试?信任调试器不是证据;它可以很容易地搞砸该功能。如何将对象声明移出尝试并查看在返回点是否解析了某些内容? Lykke til med sporingen :)
-
很可能catch with JSONException被执行了。
-
你怎么知道你的应用跳过了 try 块?
-
我尝试过使用调试器并尝试输入一条 toast 消息,但没有一个显示它在尝试中停止。
-
我不明白 toast 消息是什么。是像 System.out.println() 这样的东西吗?尝试使用 System.err.println() 使用无缓冲打印。