【发布时间】:2011-03-09 22:28:27
【问题描述】:
在我的 JAXRS 应用程序中,我有 2 个 ExceptionMapper 注册为 @Provider
public class MyExceptionMapper implements ExceptionMapper<Exception> {...}
public class MyCustomRuntimeExceptionMapper implements ExceptionMapper<MyCustomRuntimeException> {...}
当我的应用程序抛出一个新的MyCustomRuntimeException 时,异常会在MyExceptionMapper 中被捕获,尽管(JAX-RS 规范说)它应该在 MyCustomRuntimeExceptionMapper 中被捕获。
这是 JAXRS 所说的 -
JAX-RS 也支持异常继承。当异常是 抛出,JAX-RS 将首先尝试为此找到一个 ExceptionMapper 异常的类型。如果找不到,它将寻找映射器 可以处理异常的超类。这将继续 处理,直到没有更多的超类可以匹配。
有人知道这是怎么回事吗?
【问题讨论】:
-
你是否实现了 toResponse(MyCustomRuntimeException) 而不是 toResponse(Exception)?
标签: java rest exception-handling resteasy