Java Exception
Java Exception
Java Exception
- 시스템에 생긴 비정상적인 상황을 오류라고 함. 프로그램이 복구할 수 없음
- 반면 문제가 발생한 경우 일정한 방법을 통해 처리하는 방법을 예외라고 함
- 오류와 달리 예외는 개발자가 다룰 수 있음
throw
라는 키워드를 통해 직접 예외를 발생시킬 수 있음. 이를 예외를 던진다고 표현- 자바에서 예외는
Exception
이라는 클래스를 상속받음. Exception은 runtime exception이라는 하위 클래스를 가짐
Checked / Unchecked
예외는 checked exception과 unchecked exception으로 구분됨
구분 | Checked | Unchecked |
---|---|---|
예외 처리 | 명시적인 처리 필수 | 명시적인 처리 필수 아님 |
예외 확인 가능 시점 | 컴파일 시 | 실행 시 |
발생 시 트랜잭션 | 트랜잭션을 roll-back 하지 않음 | 트랜잭션을 roll-back |
예시 | IO, SQL 관련 예외 | Null pointer, Index out of bound |
Runtime exception 클래스 | 상속 받지 않음 | 상속 받음 |
예외 처리 방법
예외 발생 시 처리에 다음과 같은 세 가지 방법 존재
- 예외 복구: 예외가 발생해도 다른 코드 흐름으로 유도해 정상적으로 실행 / 종료시킴
- 예외처리 회피: 예외가 발생 시 현재 메소드를 호출한 곳에 예외를 던져 책임을 전가
- 예외 전환: 예외 발생 시 명확한 의미의 예외로 다시 던짐