这可能是一个奇怪的问题,但我还是想问一下,以便了解更多信息,并防止我在编码时做错事情。
假设我有一个函数func1(),在其中调用了一个函数func2()。func2()抛出异常e1。我想在func1()中捕获这个异常。
那么,在函数本身的开头开始try块并在func1()的结尾结束它并使用catch块,是否比仅仅将代码的一部分包含在调用函数func2()的try块中更重要?
我知道从编码人员的角度来看,如果抛出异常,他将能够准确地知道异常来自哪里。如果我们忽略这一点,只是将整个方法放置在try-catch中,是否会产生其他不良影响?
编辑 - 代码片段
因此,我正在将JSON字符串转换为JSON节点。这个操作会抛出一个异常。但是,与其用try-catch块包围这个语句,我更喜欢将整个函数放在try块中。这样看起来更简洁。 :)
public void storePublicData(String publicData, String twitterId) {
try {
Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String day = formatter.format(date);
BasicDBObject query = new BasicDBObject("date", day);
query.append("brand_id", twitterId);
JsonNode publicDataJsonNode;
publicDataJsonNode = JSONOperations.castFromStringToJSONNode(publicData);
DBObject document = BasicDBObjectBuilder.start()
.add("brand_id", twitterId)
.add("date", day)
.add("followers", publicDataJsonNode.get("followersCount").asText())
.add("tweets", publicDataJsonNode.get("tweetsCount").asText())
.get();
twitterCollection.update(query,new BasicDBObject("$set", document), true, false);
} catch (JSONParamsException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}