본문 바로가기
Computer Science/JAVA

Error와 Exception 의 개념

by 꽃요미 2024. 11. 20.

* Throwable 클래스

Error, Exception 상속 다이어 그램

* Error

 - Error는 컴퓨터 시스템의 동작 중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받을 경우.

 - 시스템 레벨에서 발생하여, 개발자가 어떻게 조치할 수 없는 수준을 의미합니다.

 - 예를 들어 OutOfMemoryError나 StackOverflowError와 같은 상황.

  1. StackOverflowError : 호출의 깊이가 깊어지거나 재귀가 지속되어 stack overflow 오류.

  2. OutOfMemoryError : JVM이 할당된 메모리의 부족으로 더 이상 객체를 할당할 수 없을 때 던저지는 오류.

Error

 

* Exception 

 

  - Exception은 컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 경우. 개발자가 구현한 로직에서 발생하며 개발자가 예측하여 방지할 수 있기에 Excpeiton Handle을 해야합니다.

ExceptIon 들

 

* Exception의 종류

 

 1. Checked Exception 

  - 컴파일 시점에 확인되며, 반드시 처리해야 하는 예외. 

IOException, SQLException 등이 속한다. Checked Exception을 유발하는 메서드를 호출하는 경우, 메서드 시그니처에 throws 를 사용하여 호출자에게 예뢰를 위임하거나 메서드 내에서 try-catch를 사용하여 해당 예외를 반드시 처리해야 함.

 

 2. Unchecked Exception 

 - 런타임 시점에 발생하는 예외로, 컴파일러가 처리 여부를 강제하지 않음. 자에서는 RuntimeException을 상속한 예외들이 해당함.

 

* Error와 Exception의 차이는 무엇일까. ( 정리 ) 

 

 - Error는 주로 JVM에서 발생하는 심각한 문제로, OutOfMemoryError, StackOverflowError 등 시스템 레벨에서 발생하는 오류. 이는 일반적으로 프로그램에서 처리하지 않으며, 회복이 어려운 오류에 속함. 코드에서 복구할 수 없는 심각한 문제를 나타냄.

 - Exception은 프로그램 실행 중에 발생할 수 있는 오류 상황을 나타냄. 대부분의 경우 회복 가능성이 존재하며, 프로그램 내에서 예외 처리를 통해 오류 상황을 제어할 수 있다.

'Computer Science > JAVA' 카테고리의 다른 글

Mutable, Immutable  (0) 2024.11.26
Java의 Garbage Collection(GC)  (0) 2024.11.22
디폴트 메서드, 추상 클래스와 인터페이스  (1) 2024.11.20
Java의 실행 엔진  (0) 2024.11.20
Java의 컴파일 과정  (0) 2024.11.20