分析
在代码走查的过程中发现,有很多同事的代码都是直接写Exception来捕获异常的,要不就按照自己的意愿写上一个自定义异常处理类来捕获这些异常,个人认为Java提供的异常类本来就是足够的,只是大家都不愿意去用或者看不懂而已。
如果你不是自定义异常的那一派,那么请你使用“多异常”捕获的方式去编写异常处理,而不是直接用顶级的Exception来捕捉异常。
结论
不要直接写成:
try {
// do something that might throw an UnsupportedDataTypeException or UnsupportedEncodingException
} catch (Exception e) { // Noncompliant
// log exception ...
}
如果直接使用Exception去接收异常,会造成统一抛出父级Exception,而不知道究竟是什么样的异常。
try {
// do something
} catch (UnsupportedEncodingException|UnsupportedDataTypeException|RuntimeException e) {
// log exception ...
}
多个异常统一catch,采用一个e代替UnsupportedEncodingException、UnsupportedDataTypeException和RuntimeException