クライアント側に渡す前にすべての例外をラップするサーバー側のコードに取り組んでいます。これにより、すべてのクライアント向けメソッドには次のコードがあります。
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...