에러의 정의
- 오류는 정상적 연산 혹은 실행이 불가능한 상황
- 컴파일, 링크, 실행 시점에서 발생
- Checked/Unchecked
- 오류는 예외 상황으로 정의 가능하며, 별도로 처리함으로써 프로그램의 흐름을 계속 이어갈 수 있음
- 절차적 흐름이 모두 성공하는 경우를 가정하고 코드를 장성할 수 있고 가독성이 높음
두 가지 예외 종류⭐️
대응관점에서 예외를 바라보고 판단
| Checked | Unchecked |
|---|---|
| Exception 파생 | RuntimeException 파생 |
| 예외 처리 강제화 - catch or throw 필수 - Compile time 예외 | 예외 처리 강제 않음 - Runtime 예외 |
| 논란 있음 | 각종 런타임 예외 대응 |
![]() |
try, catch, finally
- 특정 구간(scope)에 속한 구문들이 실행되는 동안 오류 발생 시 특정 위치로 이동해 오류를 통합 처리하는 문법
- 예외를 발생 시 catch 블록으로 제어 이동
- 간결하고 가독성이 높은 예외처리 가능
throws⭐️
void test() throws Exception{}
- Callee 에서 발생한 예외를 Caller에게 전달하도록 규정
- Caller가 예외 처리 하지 않고, 자기를 호출한 Callee에게 예외처리를 넘길 수 있다.
- Checked 예외 및 throws 선언이 포함된 메서드를 호출하는 모든 호출자는 반드시 예외처리 코드를 작성해야 한다(문법으로 강제함)
