1. 예외처리
1.1 프로그램 오류
- 컴파일 에러 : 컴파일 할때 발생하는 에러 (javac.exe 컴파일러)
- 런타임 에러 : 실행 할 때 발생하는 에러 (프로그램 종료)
- 논리적 에러 : 작성 의도와 다르게 동작 (프로그램 종료 X)
- JAVA에서 정의한 (런타임 에러 : 실행중에 발생할 수 있는)에러
- 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
- 예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
- 예외 처리의 정의와 목적
- 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
- 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것
컴파일 과정 (CMD)
- 해당하는 자바 폴더 pwd로 이동
- javac 00000.java (컴파일 하기)
- 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 연결된 예외