处理异常块中的异常

时间:2010-09-28 14:43:54

标签: java exception-handling

有人可以提供一些好的做法来处理异常中的异常,例如我有

 try { 
 ... 
 DeserializationResult deserialization = xmlSerializationService.deserializeFromXml(node);
 some code here
} catch (Exception e) { 

try {

//I need to create process result xml with error code and some details
// creation of result xml document 

} catch (Exception e) {

// maybe some error message here

  }

}   

我可以以某种方式使这段代码看起来更清晰,无噪音,更容易理解吗? 谢谢你的回答。附:我知道使用一般例外并不是一种好的做法,它只是为了这里的目的。

2 个答案:

答案 0 :(得分:1)

解决该问题的第一个近似通常是将catch的逻辑放在一个单独的方法中,并且在catch块中只有一行(方法调用)。

答案 1 :(得分:0)

始终捕获特定的异常,而不是常规的异常超类。

如果我查看该代码,我不确定会出现什么问题。如果您专门捕获异常,那么您可以更轻松地查看您期望和满足的失败。

还以对该失败有意义的特定方式处理每个故障。最简单的形式是返回描述失败的结果。

可能是这样的:

try{
    //DeserializationResult deserialization = xmlSerializationService.deserializeFromXml(node);
    //some code here
}catch(NullPointerException npe){
    //Maybe return something like: new DeserializationResult("xmlSerializationService not initialized")
}catch(DeserializationException dse){
    //Maybe return something like: new DeserializationResult("Could not deserialize because ...")
}