vix*_*ram 5 java exception jax-rs jackson exceptionmapper
我有一个JAX-RS项目,它使用Jackson来处理JSON转换.
当Jackson抛出异常时,它会自动返回带有错误描述的字符串.
因为我想返回一个自定义JSON对象,所以我创建了一个ExceptionMapper.
问题是,当我确切地指定抛出的Exception的类型时,它只捕获异常.
例如,当发送给方法的JSON包含未知属性时,这适用:
public class MyExceptionMapper implements ExceptionMapper<UnrecognizedPropertyException>
Run Code Online (Sandbox Code Playgroud)
但是,如果我UnrecognizedPropertyException
改为PropertyBindingException
(第一个扩展),它将无法工作.
简而言之:
如何创建一个通用异常映射器来捕获Jackson(或我的应用程序的任何其他组件)抛出的任何异常?
小智 0
尝试与
public class MyExceptionMapper implements ExceptionMapper<Exception>
Run Code Online (Sandbox Code Playgroud)
这应该是所有异常的后备。
如果 Jackson 找到合适的 ExceptionMapper,则会从异常向上查找层次结构。它看起来只要类型层次结构中存在某些内容即可。因此 UnrecognizedPropertyException 将由 PropertyBinding-Exception 映射器处理,但反之则不然,因为 UnrecognizedPropertyException Mapper 更具体,可能有很多子类,然后无法确定要采用哪个 Mapper。所以它只能向上工作。
因为 Exception 是基础 Exception,一切都在那里结束。
归档时间: |
|
查看次数: |
395 次 |
最近记录: |