진도
- 오류 처리
기억에 남는 내용
7. 오류 처리
- 무언가 늘 잘못될 가능성은 있고, 그것을 바로잡을 책임은 프로그래머에게 있다
- 오류 코드보단 예외
- 오류 사용하면 호출자 코드가 복잡해지므로 예외 권장
- try-catch-finally 문 부터 작성
- try-with-resources 는 kotlin 에서는
.uses
가 존재
- unchecked 예외 사용
- kotlin 에서는 따로 구분하지 않음
- checked exception 은 OCP(Open Closed Principle) 위반
- catch 를 3뎁스 위에서 한다면 그사이에 있는 메소드들은 모두 해당 예외를 선언해야함
- 예외에 의미를 제공: 검색하기 쉬운 의미있는 컨텍스트가 담긴 메시지를 첨부
- 호출자를 고려해 예외 클래스 정의
- 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법
- 예외를 합칠 수 있다면 합쳐서 던지자 (wrapper class)
- 외부 의존성은 클래스를 하나 더 감싸서 예외 계층을 따로 두는 것도 좋은 방법 (의존성 분리)
- 정상 흐름을 정의
- catch 내부에는 정상흐름에 포함되어서는 안된다
- 이때는 예외보단 다형성이 답일 수 있음 (특수 사례 객체)
- null 반환 X
- null 의 반환은 호출자에게 책임을 떠맡기는 샘
- null 반환 대신 예외나 특수사례 객체를 고려하자
- null 전달 X