392
자바에서 코틀린으로
누군가 예외를 처리할 때까지 예외가 전달된다. 아무도 예외를 처리하지 않으면 호출 스레드가
종료된다.
19.3
자바와 체크 예외
자바가 처음 나왔을 때는 예외가 상대적으로 새로운 개념이었고, 자바 언어 설계자들은 이 분
야를 혁신하기로 결정했다. 자바 설계자들은 메서드가 던질 수 있는 예외들을 메서드 시그니처
에 포함시켰다. 예를 들어, 이런 방식을 통해 호출자는 자신이 호출하는 메서드가 네트워크 자
원을 더 이상 사용할 수 없으므로 실패할 수도 있다는 사실을 알게 된다. 메서드가 자신이 이런
방식으로 실패할 수도 있다고 선언하면, 이 메서드를 호출하는 모든 호출자는 이 실패를 처리
하거나 (
catch
블록을 통해 예외를 어떻게 처리해야 하는지 기술 ), 호출자 자신도 같은 예외를
발생시키면서 실패할 수 있다고 다시 선언해야만 한다. 이를 통해 프로그래머가 이런 오류의
가능성을 확실히 처리하도록 할 수 있다. 컴파일러가 예외가 처리되는지 (또는 호출하는 메서
드에 따라 다시 던져질 수 있다고 선언되어 있는지) 검사해 주기 때문에, 이런 예외를
체크 예
외
checked
exception
라고 부른다.
검사 예외는 프로그래머가 합리적으로 실패에서 복구하는 방법을 아는 경우를 위해 설계됐다.
데이터베이스를 재시도해 보거나 소켓을 다시 여는 등의 경우를 이런 예로 들 수 있다. 자바 설
계자는 검사 예외 외에 두 가지 예외 타입을 구별했다. 바로 오류와 런타임 예외
runtime
exception
가 그 둘이다.
| 오류 |