본문 바로가기

Programming!

IntelliJ에서 orElseThrow 를 new XXException() 으로 할 때와 XXException::new로 할 때.

아래 이미지는 기본적인 Spring Data JPA에서의 findById이다. 반환 값이 Optional 이어서 없는 경우는 그냥 throw 를 하려고 하고, 보편적인 방식으로 new EntityNot..을 하면 좌측 붉은색 아이콘과 함께 안내 문구가 나온다.





딱히 문제될 소지는 없는데.. 역시 아이콘이 보이니까 자꾸 신경이 쓰인다.  해서 이렇게 메소드 참조로 해보니 아이콘이 없어졌다.



흠.. 첫번째는 실제 EntityNotFoundException 을 생성해서 넘기는 것이고, 두번째는 메소드만 참조를 걸어서 넘기는 것이고..(?) 이렇게 생각이 들었는데 이게 뭐야!!!!????






여튼 Exception내에 인수를 넘겨서 throw 할때는 첫번째 방식으로 처리하기는 하는데. 이럴꺼면 그냥 class를 받는거로도 하나 만들어주지


.orElseThrow(EntityNotFoundException.class); 요로코롬.