有人可以提供一些好的做法来处理异常中的异常,例如我有
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
}
}
我可以以某种方式使这段代码看起来更清晰,无噪音,更容易理解吗? 谢谢你的回答。附:我知道使用一般例外并不是一种好的做法,它只是为了这里的目的。
答案 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 ...")
}