我想知道依赖于流量控制的自定义异常类型是否被视为良好做法。
我们举一个例子:
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";
}
使用我的自定义例外有哪些优缺点?