자주 나오는 예외 유형
예외 설명
NullPointerException null 참조에 접근
ArithmeticException 0으로 나누기
ArrayIndexOutOfBoundsException 배열 인덱스 초과
ClassCastException 잘못된 형변환
NumberFormatException 문자열을 숫자로 변환할 때 형식 오류
IOException 입출력 실패
FileNotFoundException 파일이 존재하지 않음
SQLException DB 접근 오류
예외(Exception)의 개념
프로그램 실행 중 비정상적인 상황(오류)이 발생했을 때, 프로그램이 비정상 종료되지 않게 처리하는 구조.
→ 자바는 예외를 ‘객체’로 다루고, 발생 시 예외 객체를 던지고(catch나 throws로) 처리한다.
throw 와 throws의 차이
① 위치(쓰는 곳이 다름)
throws → 메서드 선언부에 씀
→ “이 메서드에서 이런 예외가 발생할 수 있다” 하고 알림
throw → **메서드 내부(실행문)**에 씀
→ “지금 이 순간 예외를 실제로 발생시킴”
예:
void readFile() throws IOException { // 선언부에서 예외 위임
throw new IOException("파일 읽기 실패"); // 실제 예외 발생
}
---
② 개수 처리 차이
throws는 여러 개 나열 가능
void method() throws IOException, SQLException { ... }
throw는 한 번에 하나의 예외 객체만 던질 수 있어
throw new IOException("에러 발생");
---
③ 역할 차이
구분 역할 예시
throws “예외를 던질 가능성 있음”을 알림 (책임을 호출자에게 넘김) 메서드 선언부
throw 실제로 예외 객체를 발생시킴 실행 코드 안
---
요약 한 줄로 외우면:
throws는 ‘예외 선언’, throw는 ‘예외 발생’.