我正在处理一些服务器端代码,这些代码在将所有异常传递给客户端之前对其进行包装,因此所有面向客户端的方法都具有以下代码
try{
DoSomething();
} catch (ExceptionA e) {
throw new CustomException(AType, e);
} catch (ExceptionB e) {
throw new CustomException(BType, e);
} catch (Exception e) {
throw new CustomException(Unexpected, e);
}
在每种方法中重复这一点似乎违反了 DRY 原则,我想知道重构它的最佳方法是什么。例如,我正在考虑一个包装方法,例如:
private void wrapException(Exception e) {
if (e instanceof ExceptionA) {
throw new CustomException(AType, e);
}
etc...