NullPointerException (널 포인터 예외) |
null 객체에 접근하거나 메서드 호출 시 | jString s = null; System.out.println(s.length()); // s가 null이므로 예외 발생 |
ArrayIndexOutOfBoundsException (배열 인덱스 초과) |
배열의 유효 인덱스 범위를 초과했을 때 | int[] arr = new int[3]; arr[3] = 100; // 인덱스 0~2까지만 가능, 3은 범위 초과 |
NumberFormatException (숫자 포맷 오류) |
숫자로 변환할 수 없는 문자열을 파싱할 때 | String str = "abc"; int num = Integer.parseInt(str); // "abc"는 정수 아님 |
ArithmeticException (산술 예외) |
0으로 나누는 등 수학적 오류가 있을 때 | java<br>int a = 10; int b = 0; int c = a / b; // 0으로 나누기 시도 → 예외 |
ClassCastException (잘못된 형 변환) |
실제 타입과 맞지 않게 강제 형변환할 때 | Object obj = new String("hello"); Integer i = (Integer) obj; // String → Integer 변환 불가 |
IndexOutOfBoundsException (인덱스 범위 초과) |
List, String 등 컬렉션에서 잘못된 인덱스 접근 | List<String> list = new ArrayList<>(); list.add("a"); System.out.println(list.get(5)); // 1개밖에 없음 |
IllegalArgumentException (잘못된 인자 전달) |
메서드에 허용되지 않는 값을 넘겼을 때 | Thread t = new Thread(); t.setPriority(100); // 우선순위는 1~10만 가능<br> |
IllegalStateException (객체 상태 오류) |
객체가 잘못된 상태일 때 메서드를 호출 | Scanner sc = new Scanner(System.in); sc.close(); sc.nextLine(); // 이미 닫은 스캐너 사용 |
FileNotFoundException (파일 없음) |
존재하지 않는 파일을 열려고 할 때(Checked 예외) | FileInputStream fis = new FileInputStream("no-file.txt"); |
IOException (입출력 오류) |
입출력 작업 중 문제 발생 (Checked 예외) | BufferedReader br = new Buffered Reader(new FileReader("test.txt")); String line = br.readLine(); // I/O 오류 가능성 |