Если исключениями являются проверенные исключения , то вы должны либо обработать их с помощью try-catch
, как вы это делаете сейчас, либо просто повторно вызвать исключение, добавив throws ExceptionClassName
к методу.
Если вы решите перебросить, то любой компонент, использующий ProxyClient
, должен будет либо try-catch
, либо перебросить.
С учетом сказанного вы можете использовать Supplier<T>
и создайте служебный метод для вызова метода:
@Service
public class ProxyClient {
public Integer method a() {
return doAction(client::b);
}
public Integer method b() {
return doAction(client::b);
}
public Integer method c() {
return doAction(client::c);
}
public Integer doAction(Supplier<Integer> action) {
try {
return action.get();
} catch (Exception1 e) {
// ...
} catch (Exception2 e) {
// ...
}
return null;
}
}
Похоже, вы ничего не делаете из своего примера, кроме возврата null
, если выдается какое-либо исключение. Поэтому я не уверен, что вы искали в Spring.