자바는 문제 상황을 알리는 타입(throwable)으로 검사 예외, 런타임 예외, 에러를 제공한다. 언제 무엇을 사용할지 헷갈리는 프로그래머들이 많기 때문에 참조할 좋은 지침들이 있다. 1. 검사 예외 (Checked Exception) Exception 클래스를 상속받은 예외 타입 중에서 RuntimeException을 제외한 나머지 예외들 컴파일러가 검사 예외를 체크하고, 예외를 처리하지 않으면 컴파일 오류가 발생한다. I/O 문제, 네트워크 연결 실패 등 프로그램의 외부적인 환경 변화에 따른 문제 상황을 나타내는 데 사용된다. 2. 런타임 예외 (Runtime Exception) RuntimeException 클래스를 상속받은 예외 타입을 가리킨다. 컴파일러가 이 예외를 체크하지 않으며, 예외 처리..