【问题标题】:Throwing custom exception from Jackson Serializer in Java从 Java 中的 Jackson Serializer 抛出自定义异常
【发布时间】:2013-07-22 08:16:20
【问题描述】:

我想知道是否有人可以提供帮助 - 我正在编写一个自定义 Json 序列化程序,从 JsonSerializer 扩展,并且我想将任何可能抛出的异常包装在我自己的自定义异常中,从 IOException 扩展。但是,每当我运行任何单元测试(使用 junit)以确认抛出异常时,它都失败了,说 -

Expected: (exception with message a string containing "Unable to serialize!" and an instance of com.cybersource.profile.serializer.MySerializerException)
 got: <com.fasterxml.jackson.databind.JsonMappingException: Unexpected IOException (of type com.cybersource.profile.serializer.MySerializerException): Unable to serialize!>

知道如何解决这个问题,还是不能抛出自定义异常?

【问题讨论】:

  • 您必须向我们提供代码。
  • 没有您的 Junit 代码,我们真的帮不了您。

标签: java json jackson


【解决方案1】:

搞定了——结果是一个自定义异常,你不应该从 IOException 扩展,而是 JsonProcessingException!

【讨论】:

  • Depends: IOExceptions 可以被抛出,但 JsonProcessingException 的好处是它们将被额外的信息包裹起来,而 IOExceptions 将按原样传播(因为它们被假定为成为“真正的”低级 I/O 问题)。所以你可能会更好地抛出 JPE,同意。
猜你喜欢
  • 2015-04-25
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 2011-10-06
  • 2011-05-30
  • 2020-01-10
  • 1970-01-01
相关资源
最近更新 更多