IT/java

orElseThrow로 코드 가독성을 높이자

토희 2023. 8. 30. 10:30
728x90

 

회사에서 프로젝트 진행시 Optional 객체의 유무를 판단하고 예외를 처리하기 위해 if문을 사용했다

그러다가 개인 스터디에서 다른 분들이 orElseThrow를 사용하는 거를 보고 코드의 가독성이 높다고 생각하게 되었다

 

 

아래 if문을 쓸 때와 orElseThrow 사용할 때 코드를 비교해 보면,

 

예시 코드

public class NoticeService {

   // if 사용
   public void remove(Long noticeId) {
	// select
   	Optional<NoticeResponse> noticeResponse = noticeMapper.findById(noticeId);                               
	// 예외처리
   	if(noticeResponse.isEmpty()){ throw new NoticeNotFoundException(); }
	  	
        if (noticeMapper.deleteById(noticeId) != 1) {
           throw new RemoveFailedException();
    }
}
    
    
    // orElseThrow
    public void remove(Long noticeId) {
    	// select & 예외처리 동시에
        NoticeResponse noticeResponse = noticeMapper.findById(noticeId)
                     .orElseThrow(NoticeNotFoundException::new);
        
        if (noticeMapper.deleteById(noticeId) != 1) {
            throw new RemoveFailedException();
        }
    }

    
}

 

orElseThrow 사용으로 select 와 예외처리를 동시에 하면서 if문보다 코드 한줄이 줄어든게 된다

한 메소드 안에서 예외처리 많다고 하면 그만큼 코드양이 줄어들고, 가독성이 높아질것이다!👍

 

 

 

728x90