[Java Spring] Error Handling with @ExceptionHandler

Controller:

@Controller
public class LoginController {

   private UserRepository userRepository;

    @PostMapping("/login")
    public String login(@ModelAttribute("login" Login login)) {
        User user = userRepository.searchByName(login.getUsername());
        if (user == null) throw new ApplicationException("User not found");
        return "login";
    
    }

    // this method only active for ApplicationException
    @ExceptionHandler(ApplicationException.class)
    public String handleException() {
        return "error"
    }
}

Repository:

@Repository
public interface UserRepository extends CrudRepository<User, Integer> {
    @Query("select u from User u where u.username= :name")
    public User searchByName(@Param("name") String username);
}

ApplicationException:

public class ApplicationException extends RuntimeException {
    public ApplicationException(String message){
        super(message);
    }
}
原文地址:https://www.cnblogs.com/Answer1215/p/14270141.html