자바에서 문제 상황을 알리는 타입으로 검사 예외, 런타임 예외, 에러 를 제공함
→ 각 타입이 어떤 경우에 사용되는지 알아보자
호출하는 쪽에서 복구하리라 여겨지는 상황에서 사용
호출자가 그 예외를 catch로 잡아 처리하거나, 위로 전파하도록 강제함
일반적으로 복구할 수 있는 조건일 때 발생
→ 호출자가 예외 상황에서 벗어나는데 필요한 정보를 알려주는 메서드를 함께 제공하는 것이 중요
프로그래밍 오류를 나타낼 때 사용
런타임 예외의 대부분은 전제조건을 만족하지 못했을 때 발생
ex) 배열 인덱스를 -1로 접근하는건 0에서 시작한다는 전제조건을 만족시키지 못한 것 ⇒ ArrayIndexOutOfBoundsException
발생
복구할 수 있는 오류인지 아닌지를 명확히 구분하기 어려울 수 있음 → API 설계자가 판단하여 복구 가능하지 않는 경우 런타임 예외 사용, 확신하기 어렵다면 비검사 예외 선택