我想知道依赖自定义异常类型进行流控制是否被认为是好的做法。
举个例子:
public void activateEmail(String token) {
Member member = memberRepository.findByToken(token);
if (member == null) {
throw new InvalidTokenException("Member not found");
}
...
在这里,如果在数据库中找不到实体,则会引发InvalidTokenException
自定义。RuntimeException
我使用如下 Spring MVC 异常处理程序来处理我的自定义异常:
@ExceptionHandler(InvalidTokenException.class)
public String invalidTokenException(InvalidTokenException e, HttpServletRequest request, HttpSession session, Locale locale) {
FlashMap outputFlashMap = RequestContextUtils.getOutputFlashMap(request);
if (outputFlashMap != null) {
outputFlashMap.put("message", messageSource.getMessage("controller.preference.invalid_token_member_not_found", null, locale));
}
return "redirect:/signin";
}
我的自定义异常的这种用法有什么优点和缺点?