【发布时间】:2019-04-17 13:01:06
【问题描述】:
我有一个使用 ControllerAdvice 和 ExceptionHandlers 的 Spring Boot REST 应用程序。我使用Jackson 作为我的序列化/反序列化。我使用PostMan 作为我的客户端,当我发送不同的错误(如无效输入、错误的 JSON 语法等)时......杰克逊抛出了某些异常。目前,我有一个 (1) ExceptionHandler,它明确声明了每种类型的异常,例如 MismatchedInputException、InvalidFormatException、InvalidDentinitionException...这些都是 JsonProcsessingException 的形式。
有没有办法只捕获JsonProcessingException 及其所有孩子?我根据异常的类型返回不同的消息/状态代码。因此,如果引发与序列化相关的异常,我希望发回某个错误消息。
【问题讨论】:
-
你有没有遇到过上面提到的一个异常?据我了解,spring 会用一些 spring 特定的例外来包装它。如果您只想捕获异常及其子异常,那么您只需捕获父异常即可捕获所有异常。
-
你能展示你的代码吗?
-
@Jaiwo99 同意。已解决 [org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法从字符串“ee”反序列化
java.lang.Integer类型的值:不是有效的整数值;嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串“ee”反序列化类型为java.lang.Integer的值:不是 [Source: (PushbackInputStream) 处的有效整数值;行:8,列:23](通过引用链:
标签: spring-mvc spring-boot jackson