* Throwable 클래스
* Error
- Error는 컴퓨터 시스템의 동작 중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받을 경우.
- 시스템 레벨에서 발생하여, 개발자가 어떻게 조치할 수 없는 수준을 의미합니다.
- 예를 들어 OutOfMemoryError나 StackOverflowError와 같은 상황.
1. StackOverflowError : 호출의 깊이가 깊어지거나 재귀가 지속되어 stack overflow 오류.
2. OutOfMemoryError : JVM이 할당된 메모리의 부족으로 더 이상 객체를 할당할 수 없을 때 던저지는 오류.
* Exception
- Exception은 컴퓨터 시스템의 동작 도중 예기치 않았던 이상 상태가 발생하여 수행 중인 프로그램이 영향을 받는 경우. 개발자가 구현한 로직에서 발생하며 개발자가 예측하여 방지할 수 있기에 Excpeiton Handle을 해야합니다.
* 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 |