4-3 예외처리

jihun·2026년 1월 29일

studylog

목록 보기
10/11
post-thumbnail

Error

어떤 원인에 의해 오동작 하거나 비정상저긍로 종료되는 경우

발생 시점에 따른 구분

  • 컴파일 에러 (Compile-time error) : 컴파일 도중 컴파일러가 발견하는 오류
  • 런타임 에러 (runtime error) : 컴파일은 성공저그올 진행되었으나, 프로그램 실행 중에 발생하는 오류
  • 논리적 에러 (logical error) : 컴파일도 되고 프로그램도 실행되었으나, 프로그램이 의도대로 동작하지 않는 오류

에러 vs 예외

  • 에러(Error): 발생하면 복구할 수 없는 오류 ex) 메모리 부족, 스택 오버 플로우
  • 예외(Exception): 프로그래머가 적절한 코드를 통해 대비할 수 있는 오류 ex) 클래스 형 변환 실패, 파일 읽기 실패

예외처리 (Exception Handling)

예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태를 유지하는 것
예외의 감지 및 예외 발생 시 동작할 코드를 작성하고, 사용자에게 적절한 메시지 제공

예외의 계열

RuntimeException 클래스들

  • 프로그래머의 실수로 발생하는 계열
  • unchecked exception
  • 대처 코드가 없어도 컴파일 문제 x

Exception 클래스

  • 사용자의 실수 등 외적인 요인에 의해 발생하는 계열
  • checked exception
  • 대처 코드가 없으면 컴파일 진행 x

예외 처리 키워드

직접 처리

  • try {} : 예외가 발생하는 가능성이 있는 코드를 포함하는 블록
  • catch (예외매개변수) {} : 예외가 발생했을 때 실행할 코드 블록
  • finally {} : 예외 발생 여부와 상관없이 항상 실행되는 코드 블록
try {
  // 예외가 발생할 수 있는 코드
} catch (SomeException e) {
  // 예외가 발생했을 때 처리할 코드
} finally {
  // 예외 상관없이 항상 수행해야 하는 코드
  // 중간에ㅔ return이 있어도 finally 블록 수행 후 반환
}

간접 처리

  • throws: 메서드 선언부에 사용되며, 메서드에서 발생 가능한 호출자에게 전달

예외를 직접 발생시킬 때

  • throw: 예외를 명시적으로 발생시키는 키워드

0개의 댓글