오류와 예외
오류
일반적으로 회복이 불가능한 문제.
- 시스템 레벨에서, 또는 환경적인 이유로 발생.
- 코드의 문제로 발생하는 경우도 있지만, 일단 발생하면 회복이 불가능.
- 에러가 발생한 경우 우리는 어떤한 에러로 프로그램이 종료되었는지를 확인하고 대응합니다.
예외
일반적으로 회복이 가능한 문제
- 회복이 가능하다는 전제는 그 예외가 발생할 수 있다는 것을 예상하고, 대응할 수 있다는 것.
- 현실적으로 코드레벨에서 할 수 있는 문제상황에 대한 대응은 "예외처리"에 속한다.
예외
컴파일 에러(예외)
- .java 파일을 .class 파일로 컴파일할 때 발생하는 에러
- 대부분 프로그래밍 언어 규칙(문법)을 지키지 않았기 때문에 발생.
- 예를들어 있지 않은 클래스를 호출한다거나, 접근이 불가능한 프로퍼티나 메소드에 접근하다거나 하는 경우
- 컴파일 에러가 발생하는 경우 해결 방법은 언어 규칙(문법)에 맞게 다시 작성하는 것
런타임 에러(예외)
- 예외처리에서 주로 다루게되는 에러(예외)
- 문법적인 오류는 아니라 컴파일은 잘 되었지만 "프로그램"이 실행 도중 맞닥뜨리게 되는 예외
예외의 종류
확인된 예외 (Checked Exception)
- 컴파일 시점에서 확인하는 예외
- 반드시 예외 처리를 해줘야함
미확인된 예외 (Unchecked Exception)
- 런타임 시점에서 확인되는 예외
- 예외 처리가 반드시 필요하진 않음