Итак, я наткнулся на этот фрагмент кода, где у меня есть 10+ функций в классе с той же логикой обертывания исключений: < /p>
public RY doSomething1(a,b,c) {
try {
// apiProxy.callServiceY(a,b,c)
} catch (ResponseException ex) {
throw new WrapperException("Unable to perform call service y", ex);
}
}
public RZ doSomething2(a,b,c,d) {
try {
// apiProxy.callServiceZ(a,b,c,d)
} catch (ResponseException ex) {
throw new WrapperException("Unable to perform call service z", ex);
}
}
// ....
< /code>
В каждом методе единственная разница - это фактическая логика.
Это немного неуклюже, но это сделано, чтобы иметь возможность зарегистрировать событие с человеческим понятным посланием, которое передано в обернутое. Я, конечно, мог бы извлечь призыв Callservicex в еще один метод с аннотацией @retry, но тогда мне нужно еще 15 методов.
Конечно, должен быть лучший способ кодировать это?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ery-method