[JAVA] 예외가 발생하는 상황

1. 입력 데이터의 오류

사용자 입력에 대한 유효성 검사를 수행하지 않은 경우, 부적절한 입력으로 인해 예외가 발생할 있습니다. 

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int age = sc.nextInt();
        // age로 문자열을 입력할 경우 InputMismatchException 예외 발생
        System.out.println(age);
    }
}

2. 파일 네트워크 관련 오류

파일이 존재하지 않거나 읽기/쓰기 권한이 없는 경우, 파일 처리 예외가 발생할 있습니다. 또한 네트워크 통신 연결이 끊기는 등의 예외도 발생할 있습니다.

public class Main {
    public static void main(String[] args) throws FileNotFoundException {
        File file = new File("/JAVA/text.txt");
        // 파일을 찾지 못할 경우 FileNotFoundException 예외 발생
        FileReader fr = new FileReader(file);
    }
}

3. 배열 인덱스 초과

배열의 유효한 인덱스 범위를 초과하여 접근하는 경우 발생합니다.

public class Main {
    public static void main(String[] args) {
        int[] ages = new int[1];
        // 인덱스 초과로 ArrayIndexOutOfBoundsException 예외 발생
        ages[2] = 1;
    }
}

4. 0으로 나누기

어떤 값을 0으로 나누는 경우 예외가 발생합니다.

public class Main {
    public static void main(String[] args) {
        int age = 100;
        // ArithmeticException 예외 발생
        System.out.println(age / 0);
    }
}

5. 객체 참조 오류

객체가 생성되지 않은 상태에서 해당 객체를 참조하려 경우 에외가 발생합니다.

public class Main {
    public static void main(String[] args) {
        String name = null;
        // NullPointerException 예외 발생
        name.toString();
    }
}

6. 메모리 부족

프로그램이 필요한 메모리를 할당받을 없는 상황에서 OutOfMemoryError 예외가 발생합니다.

 

7. 스택 오버플로우

재귀 호출이 너무 깊어질 스택이 가득 차서 StackOverflowError 예외가 발생합니다.