Java_예외 처리(예외처리 1-1)
💻 Java에서의 프로그램 에러는 크게 3가지가 있다.
서론으론 에러 3가지를 간략하게 정리하겠다
- 컴파일 에러: 컴파일 시에 발생하는 에러 (실행 아예 불가)
- 런타임 에러: 실행시 발생하는 에러 (컴파일은 가능)
- 논리적 에러: 실행은 되지만, 프로그래머의 의도와 다르게 동작하는 것
또 자바에서 실행 시 발생(런타임 에러) 할 수 있는 오류는 두 가지로 나뉜다.
자바에서 정의 내렸다고 볼 수 있다.
- 에러: 프로그램 코드에 의해 수습될 수없는 심각한 오류
- 예외: 프로그램 코드에 의해 수습될 수 있는 다소 미약한 오류
에러의 대표적인 예는 메모리 부족(OOME: Out OF Memory Error)나 스택오버플로우 (StackOverflow Error)등이 있다. 에러는 아주 심각한 오류이다. 복구 또 한 못한다.
예외는 발생하더라도 수습될 수 있는 비교적 약한 오류이다. 대표적인 예는 배열의 범위를 벗아 난 (ArrayIndexOutOfBoundsException)이 있다. 우리가 배열을 다루면서 쉽게 볼 수 있는 오류이다.
다음은 Error(에러)와 Exception(예외)의 클래스 상속도를 그린 것이다. Java모든 클래스는 Object의 자손이라는 것을 알 수 있다.
모든 예외의 최고 조상은 Exception클래스이다. Exception클래스의 상속도를 살펴보자
위 그림에서 볼 수 있는 예외 클래스들은 크게 두 그룹으로 나뉜다.
1. Exception 클래스와 그 자손들 (그림 파란색 도형)
2. RuntimeException 클래스와 그 자손들 (그림 연두색 도형)
마지막으로 Exception클래스들과 RuntimeException클래스들에 대해 자세히 알아보자.
Exception 클래스들 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 RuntimeException 클래스들 프로그래머의 실수로 발생하는 예외 |
Exception 클래스의 예는 위 상속도에서 나오듯이 IOException, ClasssNotFoundException 또 RuntimeException이 있다.
여기서 제일 중요한 것은 Exception(예외)에서 RuntimeException도 자손이라는 것을 알 수 있다.
주로 외부의 영향으로 발생할 수 있는 예외들이다.
RuntimeException 클래스 ArithmeticException, ClassCastException 등 이 있다.
주로 프로그래머의 실수에 의해 발생하는 예외이다.
📌결론
Java에서의 에러는 크게 3가지이다. (컴파일 에러, 런타임 에러, 논리적 에러) 논리적 에러는 크게 두가지로 나뉜다. (에러,예외) 에러: 심각한 오류 예와: 다소 경미한 오류 예외(Exception)Class의 상속도를 보면 Exception과 (Exception에 RuntimeException도 자손이다.) RuntimeException으로 나뉜다. Exception은 주로 외적인 요인에 의해 발생하는 예외 RuntimeException은 주로 프로그래머의 실수로 발생하는 예외이다. |
🎈 다음 글 보기 (예외처리 1-2)