자바의 정석 - 프로그램 오류. 예외 클래스의 계층구조
프로그램 오류
- 컴파일 에러 (compile-time error) : 컴파일 할 때 발생하는 에러
- 런타임 에러 (runtime error) : 실행 할 때 발생하는 에러
- 논리적 에러 (logical error) : 작성 의도와 다르게 동작
- 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
- 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
-> 에러는 어쩔 수 없지만, 예외는 처리하자.
- 예외처리의 정의와 목적
- 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
- 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것
- 예외 클래스의 계층구조
- object > Throwable (클래스, 모든 오류의 조상) > Exception, Error
- Exception > RuntimeException, IOException ...
- Error > OutOfMemoryError
- Exception과 RuntimeException
- Exception클래스들 : 사용자의 실수와 외적인 요인에 의해 발생하는 예외 (입출력 예외, 클래스가 존재X ...)
- RuntimeException클래스들 : 프로그래머의 실수로 발생하는 예외 (산술계산 예외, 형변환 예외, 널포인트 예외 ...)