예외와 예외 클래스
사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 발생하는 프로그램 오류를 예외(exception)라고 하며, 예외 처리 프로그램으로 정상 실행 상태를 유지해야 한다
* 개발자의 경험에 의해 예외 처리 코드 작성, 없을 경우 프로그램 강제 종료
- 일반 예외: 컴파일러가 체크하는 예외로, 컴파일 과정에 해당 예외 처리 코드가 있는지 검사
- 실행(runtime) 예외: 컴파일러가 체크하지 않는 예외로, 검사 없이 실행 시 예측 없이 갑자기 발생
- NullPointerException: 가장 빈번하게 발생하는 실행 예외로, 객체 참조가 없는 상태의 참조 변수로 객체 접근 연산자를 사용할 경우 발생
- ArrayIndexOutOfBoundsException: 배열에서 인덱스 범위를 초과할 경우 발생
- NumberFormatException: 숫자로 변환될 수 없는 문자열을 숫자로 변환할 때 발생
- ClassCastException: 상위 & 하위 클래스 / 구현 클래스 & 인터페이스 간 타입 변환은 가능하지만 그 외의 경우 클래스 타입 변환 시 발생
예외 처리 코드
try-catch-finally 블록으로 일반 및 실행 예외 모두 흐름 제어가 가능하다
throws 키워드로 메소드에서 처리하지 않은 예외를 호출한 곳으로 넘길 수 있다
'Languages > Java' 카테고리의 다른 글
[HUFS/객체지향프로그래밍] #11 스레드 (0) | 2023.01.06 |
---|---|
[HUFS/객체지향프로그래밍] #10 기본 API 클래스 (0) | 2023.01.06 |
[HUFS/객체지향프로그래밍] #8 중첩 클래스와 중첩 인터페이스 (0) | 2023.01.04 |
[HUFS/객체지향프로그래밍] #7 인터페이스 (0) | 2023.01.03 |
[HUFS/객체지향프로그래밍] #6 상속 (0) | 2022.12.30 |