프로그램 오류
프로그램이 어떤 원인으로 인해 오작동, 비정상적으로 종료되는 경우가 있는데
이것을 프로그램 에러 또는 에러라고 한다.
이런 에러를 발생시점에 따라 '컴파일 에러', '런타임 에러', '논리적 에러'로
나눌 수 있다.
컴파일 에러 : 컴파일 시에 발생하는 에러
런타임 에러 : 실행 시에 발생하는 에러
논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것
자바에서는 발생할 수 있는 프로그램 오류를 '에러(error)', '예외(Exception)' 두 가지로 구분 했다.
에러는 발생하면 복구할 수 없는 심각한 오류이고, 예외는 발생하더라도 수습이 가능한 덜 심각한 에러이다.
에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
예외 클래스의 계층구조
자바에서는 실행 시 발생할 수 있는 오류(Exception과 Error)를 클래스로 정의하였다.
모든 클래스의 조상은 Object클래스이므로 Exception과 Error클래스도 Object의 자손이다.
모든 예외의 최고 조상은 Exception클래스이다.
RuntimeException도 Exception의 자손이지만 두개를 나누는게 좋겠다.
RuntimeException클래스들은 주로 프로그래머의 실수에서 발생될 수 있는 예외들이고
그외의 클래스들은 외부의 영향, 프로그램의 사용자에 의해 발생하기 때문이다.
예를 들면,
FileNotFoundException : 존재하지 않는 파일의 이름을 입력
ClassNotFoundException : 클래스의 이름을 잘못 입력
DataFormatException : 데이터 형식이 잘못된 경우에 발생
Exception 클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
RuntimeException클래스들 : 프로그래머의 실수로 발생하는 예외
댓글