В моем приложении RESTEasy я получаю a java.lang.reflect.UndeclaredThrowableException
, потому что контролируемая исключительная ситуация бросается из метода, который не объявляет исключение в пункте бросков.
Таким образом, я пишу UndeclaredThrowableExceptionMapper
. UndeclaredThrowableException
переносит реальное исключение; я звоню e.getCause()
получать его.
Я могу затем бросить его или так или иначе искать надлежащее ExceptionMapper
обработать его?
Вы можете попробовать добавить поле / свойство @Context javax.ws.rs.ext.Providers
в свой класс UndeclaredThrowableExceptionMapper
.
Затем используйте Providers.getExceptionMapper (Class)
, чтобы найти реальный преобразователь исключений, который вы хотите использовать.