Item 70 : 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라.
2021. 9. 7. 15:13
- 자바에서 문제 상황을 알리는 타입(throwable)
- 검사 예외
- 런타임 예외
- 에러
- 어떤 상황에서 어떤 throwable을 사용해야할까??
호출하는 쪽에서 복구하리라 여겨지는 상황이라면 검사 예외
- 검사와 비검사 예외를 구분하는 기본 규칙
- 검사 예외를 던지면 호출자가 그 예외를 catch로 잡아 처리하거나 더 바깥으로 전파하도록 강제하게 된다.
- 따라서 메소드 선언에 포함된 검사 예외 각각은 그 메소드를 호출했을 때 발생할 수 있는 유력한 결과
- 검사 예외의 예시는 중복된 아이디를 입력한 경우에 프로그램을 중단시키는 것이 아닌 다른 아이디를 입력하게끔 유도하라는 의미이다.
비검사 throwable
- 런타임 예외와 에러를 뜻함
- 이 둘은 프로그램에서 잡을 필요가 없거나 혹은 통상적으로 잡지 말아야 한다.
프로그래밍 오류를 나타낼 때는 런타임 예외
- 런타임 예외의 대부분은 전제조건을 만족하지 못했을 때 발생
- 클라이언트가 해당 API의 전제조건을 만족하지 못했음을 뜻함
에러는 보통 JVM이 자원부족, 불변식 깨짐 등 더 이상 수행을 계속할 수 없는 상황을 나타낼 때 사용
- 검사 예외도 아니고 런타임 예외도 아닌 throwable은 정의하지 말자
- 검사 예외라면 복구에 필요한 정보를 알려주는 메소드도 제공하라
'책 > 이펙티브자바' 카테고리의 다른 글
Item 72 : 표준 예외를 사용하라 (0) | 2021.09.08 |
---|---|
Item 71 : 필요없는 검사 예외사용은 피하라 (0) | 2021.09.07 |
Item 69 : 예외는 진짜 예외 상황에만 사용하라 (0) | 2021.09.05 |
Item 68 : 일반적으로 통용되는 명명 규칙을 따르라 (0) | 2021.09.04 |
Item 67 : 최적화는 신중히 하라 (0) | 2021.09.03 |