코드일기장

Java_예외 처리(예외처리 1-1) 본문

Java

Java_예외 처리(예외처리 1-1)

codeStudy123 2021. 12. 23. 18:02

 

 

💻  Java에서의 프로그램 에러는 크게 3가지가 있다.

서론으론 에러 3가지를 간략하게 정리하겠다

 

 

  • 컴파일 에러: 컴파일 시에 발생하는 에러 (실행 아예 불가)
  • 런타임 에러: 실행시 발생하는 에러 (컴파일은 가능)
  • 논리적 에러: 실행은 되지만, 프로그래머의 의도와 다르게 동작하는 것

 

 

 

또 자바에서 실행 시 발생(런타임 에러) 할 수 있는 오류는 두 가지로 나뉜다.

자바에서 정의 내렸다고 볼 수 있다.

  • 에러: 프로그램 코드에 의해 수습될 수없는 심각한 오류
  • 예외: 프로그램 코드에 의해 수습될 수 있는 다소 미약한 오류

 

 

 

에러의 대표적인 예는 메모리 부족(OOME: Out OF Memory Error)나 스택오버플로우 (StackOverflow Error)등이 있다. 에러는 아주 심각한 오류이다. 복구 또 한 못한다.

 

예외는 발생하더라도 수습될 수 있는 비교적 약한 오류이다. 대표적인 예는 배열의 범위를 벗아 난 (ArrayIndexOutOfBoundsException)이 있다.  우리가 배열을 다루면서 쉽게 볼 수 있는 오류이다.

 

 

 


 

다음은 Error(에러)와 Exception(예외)의 클래스 상속도를 그린 것이다.  Java모든 클래스는 Object의 자손이라는 것을 알 수 있다.

오류에 대한 클래스의 상속도 

 

 


 

 

모든 예외의 최고 조상은 Exception클래스이다. Exception클래스의 상속도를 살펴보자

RuntimeException위는 Expception 자손들 아래는 Runtime 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)

 

Comments