【发布时间】:2018-11-04 23:22:22
【问题描述】:
有谁知道使用@ExceptionHandler 包装异常的最佳/最简单方法?
我有一个自定义 org.springframework.core.convert.converter.Converter 用于转换 @PathVariable,如果输入超出标准范围,它会引发自定义运行时异常。
这最终被 Spring 包裹在 ConversionException 中,我可以在 Controller Advice 中使用 @ExceptionHandler(ConversionException.class) 处理。
但是我必须.getCause() 并使用instanceof 来确定底层异常是否是我感兴趣的类型。此时我可以使用对.sendError() 的响应,但如果我有不同的潜在异常我不知道该怎么办?
如果我重新抛出原始异常,我会收到一条令人讨厌的日志消息“无法调用 @ExceptionHandler 方法”,而且感觉不对。
有没有一种简单的方法来做类似@ExceptionHandler(MyCustomConversionException.class) 的事情,其中MyCustomConversionException 是@ControllerAdvice 中ConversionException 的原因?
谢谢!
【问题讨论】:
标签: java spring spring-boot