Call ExceptionMapper from another ExceptionMapper

2019-04-23 11:22发布

问题:

In my RESTEasy application I'm getting a java.lang.reflect.UndeclaredThrowableException, because a checked exception is being thrown from a method that doesn't declare the exception in the throws clause.
So I'm writing an UndeclaredThrowableExceptionMapper. The UndeclaredThrowableException wraps the real exception; I call e.getCause() to retrieve it.
Can I then throw it or somehow look up the proper ExceptionMapper to handle it?

回答1:

You can try adding a @Context javax.ws.rs.ext.Providers field/property to your UndeclaredThrowableExceptionMapper class.
Then use Providers.getExceptionMapper(Class) to look up the real exception mapper you want to use.