개발
Effective JAVA Exception처리
ka0oll
2020. 3. 30. 18:51
개발을 하다보면 귀차니즘으로 인해 RuntimeException으로 throw한다.
검사 예외와 런타임 예외를 어떻게 구분 해야될까
검사(체크) 에러
호출하는 쪽에서 복구 하리라 여기지는 상황이면 검사(체크) 예외를 사용해라
- API설계자가 검사 예외를 던져주어 핸들링 하라는 의미
- ex) DB 트랜잭션 실패의 경우에는 롤백이 필요하니 검사 에러가 적합
API를 제대로 사용해도 발생할수 있는 오류, 프로그래머가 조치를 취할수잇는 오류
일반적으로 복구 가능한 정보도 전달
Exception에 메소드 제공
FailType failType; public OrderCancelFailException(FailType failType){ this.FailType = failType; } FailType getType(){ return failType; }
비검사(런타임) 에러
프로그래밍 오류를 나타냄
- API 사용자의 실수
대부분 전제 조건을 만족시키지 몰할때 발생
- 제약사항, validation오류 같은 경우
검사, 비검사 얘매할땐 비검사 예외를 전달
- 복구가 가능하다 싶으면 검사 에러, 그렇지 않다면 비검사 에러
- 예를 들어 무한 리소스 요구, 실제로 프로그래밍 적으로 실수인지 예매한경우 개발자의 판단.