代码之家  ›  专栏  ›  技术社区  ›  BAE

泽西岛有多个例外情况

  •  2
  • BAE  · 技术社区  · 8 年前

    假设我有两个例外标记:

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

    如果引发WebApplicationException或WebApplicationException的子异常,哪个映射程序将处理它们?有人能解释一下吗?

    谢谢

    1 回复  |  直到 8 年前
        1
  •  2
  •   Paul Samsotha    8 年前

    这在JAX-RS规范中关于ExceptionMappers进行了说明

    选择异常映射提供程序映射异常时,实现必须使用泛型类型为最接近异常超类的提供程序。

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

    推荐文章