Java의 정석 - Chapter8 예외처리

hoegon kim·2023년 8월 31일
0

JAVA

목록 보기
26/26

1. 예외처리

1.1 프로그램 오류

  • 컴파일 에러 : 컴파일 할때 발생하는 에러 (javac.exe 컴파일러)
    • ① 구문체크
    • ② 번역
    • ③ 최적화
  • 런타임 에러 : 실행 할 때 발생하는 에러 (프로그램 종료)
  • 논리적 에러 : 작성 의도와 다르게 동작 (프로그램 종료 X)
  • JAVA에서 정의한 (런타임 에러 : 실행중에 발생할 수 있는)에러
    • 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
    • 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
  • 예외 처리의 정의와 목적
    • 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
    • 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

컴파일 과정 (CMD)

  1. 해당하는 자바 폴더 pwd로 이동
  2. javac 00000.java (컴파일 하기)
  3. java 00000 (런타임 하기)

1.2 예외 클래스의 계층 구조


① Exception 클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외

② RuntimeException 클래스 : 프로그래머의 실수로 발생하는 예외


1.3 예외 처리하기 - try - catch 문

예외 처리하기

정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것

목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

프로그램 오류

  • 컴파일에러

  • 런타임에러(실행할때 발생하는 에러)

    • 에러 : 심각한 에러
    • 예외 : 미약한 에러
      • ExceptionError 와 그 자손들
      • RuntimeError 와 그 자손들
  • 논리적에러


1.4 try - catch 문에서의 흐름

실행도중 에러가 발생하면 발생한 시점을 기준으로 이후의 실행은 더 이상 진행되지 않고 해당되는 에러의 catch의 데이터 타입을 찾는다.

try {

} catch (Exception1 e1) {

} catch (Exception2 e2) {

} catch (Exception3 e3) {

} catch (ExceptionN eN) {

}

1.5 예외의 발생과 catch의 블록

  • 예외가 발생하면, 이를 처리할 catch블럭을 찾아 내려감
  • 일치하는 catch블럭이 없으면, 예외는 처리 안됨
  • Exception이 선언된 catch블럭은 모든 예외처리(마지막 catch블럭)

해당하는 오류의 타입이 없을때 예외처리하는 부분이 없기때문에 오류가 발생



1.6 예외 발생시키기


1.7 메서드에 예외 선언하기


1.8 finally 블록


1.9 자동 자원 반환 - try - with - resources 문


1.10 사용자정의 예외 만들기


1.11 예외 되던지기


1.12 연결된 예외


0개의 댓글