I want to throw Exceptions that are extended from Exception
if Try.ofCallable()
fails.
I have a callable of the type:
final Callable<MyResponse> decoratedCallable =
circuitBreakerService.getDecoratedMethod(
myArg1,
() -> myFunction(myArg1, myArg2, myArg3)
);
I am trying something like this:
Try.ofCallable(decoratedCallable).onFailure(throwable -> {
if (throwable instanceof CallNotPermittedException) {
throw new MyRuntimeExceptionA("msg1", throwable);
} else {
throw new MyRuntimeExceptionB("msg2", throwable);
}
});
This works (the function that wraps the above two statements throws the correct exception MyRuntimeExceptionA and MyRuntimeExceptionB) if both MyRuntimeExceptionA
and MyRuntimeExceptionB
extend RuntimeException
, but not if they extend Exception
.
If they extend Exception
then I am not able to throw them from the main function.
The IDE asks to wrap them in try/catch - which I don't want.