0

我想知道依赖自定义异常类型进行流控制是否被认为是好的做法。

举个例子:

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";
    }

我的自定义异常的这种用法有什么优点和缺点?

4

0 回答 0