2

假设我有两个 ExceptionMapper:

public class WebApplicationExceptionMapper implements ExceptionMapper<WebApplicationException>
( class WebApplicationException extends RuntimeException )
public class GenericExceptionMapper implements ExceptionMapper<Throwable>

如果抛出 WebApplicationException 或 WebApplicationException 的子异常,哪个映射器会处理它们?有人可以解释一下吗?

谢谢

4

1 回答 1

2

这在关于 ExceptionMappers 的 JAX-RS 规范中有所说明

When choosing an exception mapping provider to map an exception, an implementation MUST use the provider whose generic type is the nearest superclass of the exception.

基本上,它是说您的Throwable映射器将具有最低的优先级,因为它是任何异常类型中最远的超类型。它的任何WebApplicationException或其子类将始终使用WebApplicationException映射器。

于 2018-01-27T03:44:48.537 回答