【发布时间】:2011-09-29 04:33:22
【问题描述】:
我对 java 和 try catch 块处理异常的想法非常陌生。
这大致就是我的最终结果,而且必须有更好的方法:
try {
JSONObject jsonObject = new JSONObject(jsonString);
int aCount = jsonObject.getInt("acount");
String devTok = jsonObject.getString("dt");
String qURL = jsonObject.getString("qu");
try {
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key qKey = KeyFactory.createKey("qu", qURL);
int dsACount = (Integer) datastore.get(qKey).getProperty(kLastKnownANumber);
//..etc.. more try catch blocks needed
} catch (EntityNotFoundException e) {
e.printStackTrace();
}
} catch (com.google.appengine.repackaged.org.json.JSONException e) {
e.printStackTrace();
}
有更多的try catch块以相同的方式嵌入,所以最后只有一堆catch块。否则应该如何处理异常,Eclipse 一直要求我用 try catch 块或“添加 throws 声明”。
有时我想捕获某些异常,例如,如果它找不到实体,我想打印类似“Entity not found”之类的内容,如果 JSON 字符串无法解析为对象,我想打印诸如“无法解析 JSON”之类的内容。
(我习惯于在 Objective-c 中失败的委托方法,或者该方法返回 null 并且您已经传递了一个指向 [a pointer to] NSError 对象的指针,该对象将被“填充”,是有什么地方可以学习 try-catch 吗?)
【问题讨论】:
-
哇,人们快速回答 java 问题 :)