본문 바로가기
프로그래밍/JAVA

초보 자바 프로그래밍(55) - Error와 Exception

by 머니테크리더 2023. 6. 4.
반응형

자바 Error and Excpetion 대표 이미지
자바 Error and Excpetion 대표 이미지

🔖 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 발생
        }
    }

     

    이러한 오류와 예외를 이해하고 적절히 처리하는 것은 안정적인 소프트웨어를 만드는 데 중요한 역할을 합니다. 다음 섹션에서는 이러한 예외를 어떻게 처리하는지에 대해 더 자세히 알아보겠습니다.

     

     

    댓글