如何解决我可以使特定异常的 ExceptionHandler 代码起作用,而不是使用 @ControllerAdvice 处理“异常”的代码
我在 Spring Boot 项目中使用 @ControllerAdvice 来处理 Stripe 的卡片异常,但每次抛出此异常时,处理异常的代码都会起作用,而不是处理特定卡片异常的代码。
这就是我正在做的:
“这是抛出异常的 Api - CardException 输入错误的卡详细信息”
@PostMapping("/charge")
public String chargePayment(HttpServletRequest request) throws CardException,AuthenticationException,InvalidRequestException,StripeException {
.......
}
“这是我的异常处理类代码”
@ControllerAdvice
public class StripeExceptionHandler {
// I want this to work when the above method/Api throws CardException.
@ExceptionHandler(CardException.class)
public String handleCardException(CardException cardException,Model model) {
model.addAttribute("exception","CardException : "+ cardException.toString());
model.addAttribute("redirectUrl","contribute");
return "exceptionpage";
}
// But every time CardException is thrown this code works instead of the above specific code.
@ExceptionHandler(Exception.class)
public String handleGlobalExceptions(Exception exception,WebRequest webRequest,exception.getMessage());
model.addAttribute("redirectUrl",webRequest.getDescription(false));
return "exceptionpage";
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。