에러의 정의

  • 오류는 정상적 연산 혹은 실행이 불가능한 상황
    • 컴파일, 링크, 실행 시점에서 발생
    • Checked/Unchecked
  • 오류는 예외 상황으로 정의 가능하며, 별도로 처리함으로써 프로그램의 흐름을 계속 이어갈 수 있음
  • 절차적 흐름이 모두 성공하는 경우를 가정하고 코드를 장성할 수 있고 가독성이 높음

두 가지 예외 종류⭐️

대응관점에서 예외를 바라보고 판단

CheckedUnchecked
Exception 파생RuntimeException 파생
예외 처리 강제화
- catch or throw 필수
- Compile time 예외
예외 처리 강제 않음
- Runtime 예외
논란 있음각종 런타임 예외 대응

try, catch, finally

  • 특정 구간(scope)에 속한 구문들이 실행되는 동안 오류 발생 시 특정 위치로 이동해 오류를 통합 처리하는 문법
  • 예외를 발생 시 catch 블록으로 제어 이동
  • 간결하고 가독성이 높은 예외처리 가능

throws⭐️

void test() throws Exception{}

  • Callee 에서 발생한 예외를 Caller에게 전달하도록 규정
  • Caller가 예외 처리 하지 않고, 자기를 호출한 Callee에게 예외처리를 넘길 수 있다.
  • Checked 예외 및 throws 선언이 포함된 메서드를 호출하는 모든 호출자는 반드시 예외처리 코드를 작성해야 한다(문법으로 강제함)