반응형
🔖 INDEX
Error
Error는 시스템 수준에서 일어나는 심각한 문제를 나타내며, 일반적으로 개발자의 애플리케이션 코드에서 처리할 수 없습니다. 이들은 주로 JVM(Java Virtual Machine)에서 일어나며, OutOfMemoryError와 StackOverflowError가 대표적입니다.
- OutOfMemoryError: 이 오류는 JVM이 더 이상 메모리를 할당할 수 없을 때 발생합니다. 예를 들어, 너무 큰 배열을 생성하려고 하면 이 오류가 발생할 수 있습니다.
public class Main {
public static void main(String[] args) {
int[] arr = new int[Integer.MAX_VALUE]; // OutOfMemoryError 발생
}
}
- StackOverflowError: 메서드 호출이 너무 깊이 중첩되어 스택 메모리가 부족할 때 이 오류가 발생합니다. 대표적인 예는 재귀 호출이 제대로 종료되지 않아 무한 반복될 때입니다.
public class Main {
public static void recursiveMethod() {
recursiveMethod(); // StackOverflowError 발생
}
public static void main(String[] args) {
recursiveMethod();
}
}
Exception
Exception은 프로그램에서 처리할 수 있는 문제를 나타냅니다. 이들은 Checked Exception과 Unchecked Exception으로 더 세분화됩니다.
- Checked Exception은 컴파일러가 미리 확인하여 처리해야 하는 예외입니다. 이 예외들은 예외 처리 코드를 명시적으로 작성하지 않으면 컴파일 오류가 발생합니다. 대표적인 예로는 IOException과 SQLException이 있습니다. IOException은 I/O 작업 중 발생할 수 있는 예외를 나타내며, 파일을 열거나 네트워크 연결을 할 때 발생할 수 있습니다. SQLException은 데이터베이스 액세스 중 발생하는 예외입니다.
import java.io.*;
public class Main {
public static void main(String[] args) {
File file = new File("non_existing_file.txt");
try {
FileReader fr = new FileReader(file); // FileNotFoundException 발생
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
- Unchecked Exception은 컴파일 시점에 처리를 강요받지 않는 예외입니다. 이들은 대부분 프로그래머의 실수로 인해 발생하는 예외로, NullPointerException, ArrayIndexOutOfBoundsException 등이 있습니다.
public class Main {
public static void main(String[] args) {
int[] arr = new int[5];
System.out.println(arr[5]); // ArrayIndexOutOfBoundsException 발생
}
}
이러한 오류와 예외를 이해하고 적절히 처리하는 것은 안정적인 소프트웨어를 만드는 데 중요한 역할을 합니다. 다음 섹션에서는 이러한 예외를 어떻게 처리하는지에 대해 더 자세히 알아보겠습니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
초보 자바 프로그래밍(57) - Thread (0) | 2023.10.03 |
---|---|
초보 자바 프로그래밍(56) - Exception Handling (try-catch-finally, throws) (0) | 2023.10.03 |
초보 자바 프로그래밍(54) - 인터페이스와 추상클래스 (0) | 2023.05.21 |
초보 자바 프로그래밍(53) - super / super 메서드 (0) | 2023.05.16 |
초보 자바 프로그래밍(52) - 상속 (inheritance) (0) | 2023.05.14 |
댓글