카테고리 없음

자바 예외처리

Sunbang123 2025. 11. 8. 06:32

자주 나오는 예외 유형

예외 설명

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는 ‘예외 발생’.