![](/img/trans.png)
[英]Jersey/Jackson Exception problem with ExceptionMapper
[英]Catching any exception Jackson throws with a single ExceptionMapper
我有一個JAX-RS項目,它使用Jackson來處理JSON轉換。
當Jackson拋出異常時,它會自動返回帶有錯誤描述的字符串。
因為我想返回一個自定義JSON對象,所以我創建了一個ExceptionMapper 。
問題是,當我確切地指定拋出的Exception的類型時, 它只捕獲異常。
例如,當發送給方法的JSON包含未知屬性時,這適用:
public class MyExceptionMapper implements ExceptionMapper<UnrecognizedPropertyException>
但是,如果我將UnrecognizedPropertyException
更改為PropertyBindingException
(第一個擴展),它將無法工作。
簡而言之:
如何創建一個通用異常映射器來捕獲Jackson(或我的應用程序的任何其他組件)拋出的任何異常?
嘗試
public class MyExceptionMapper implements ExceptionMapper<Exception>
這應該是所有例外的后備。
如果找到合適的ExceptionMapper,Jackson正在尋找異常的層次結構。 只要類型層次結構中存在某些內容,它就會顯示出來。 因此,UnrecognizedPropertyException將由PropertyBinding-Exception映射器處理,但不是相反,因為UnrecognizedPropertyException Mapper更具體,可能有許多子類,然后無法確定要采用哪個Mapper。 所以它只能起作用。
因為異常是基礎異常,一切都在那里結束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.