JPA를 사용할 시 Option을 위주로 예외처리하는 방법과 일반적인 메소드의 예외처리 방식의 생각 정리
1. 메소드를 통한 예외처리
- 메소드에 전달된 인수 값이 잘못된 경우에 발생
- throw를 통해 예외 발생시 해당 메소드 중단!
- new 키워드로 예외 인스턴스를 생성
- 이름이 null이거나 공백일 경우 예외발생으로 해당 메소드 중지
public User(String name, Integer age) {
if(name == null || name.isBlank()){
throw new IllegalArgumentException(String.format("잘못된 name(%s)이 들어왔습니다", name));
}
}
2. Option를 통한 예외처리
- Optional 객체의 유무를 판단하고 예외를 처리하기 위해 if문 대신 원하는 객체가 없다면 orElseThrow로 예외처리가능
- Spring data JPA를 이용하여 해당 ID값이 없을 경우 예외처리로 메소드 중단!
public void userUpdate(UserUpdateRequest request){
User user = userRepository.findById(request.getId())
.orElseThrow(IllegalArgumentException::new);
user.updateName(request.getName());
}