1. 프로그램 오류
- 컴파일 에러 : 자바 문법의 오류 / 미리 잡아줌
- 런타임 에러 : 실행 중에 오류 / 예외 처리 구간
- 논리적 / 컨텍스트 에러 : 의도와 다르게 동작 (사람만 판단할 수 있는 영역)
- Java의 런타임 에러 : 에러와 예외
- 에러(error) : 심각한 오류
- 예외(exception) : 수습 가능한 미약한 오류
2. 예외처리의 정의와 목적
- 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성
- 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지
3. 예외처리구문 (try - catch)
try{
} catch (ABC_Exception e){
} catch (123_Exception e){
}
4. 예외 강제 발생
- 먼저 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든다
Exception e = new Exception("고의로 발생시킴")
throw e;
5. 예외 클래스의 계층 구조
- 예외 클래스는 크게 두 그룹으로 나뉜다
- Exception 클래스 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
- RuntimeException 클래스 : 프로그래머의 실수로 발생
6. 예외의 발생과 catch 블록
- try 블록에서 예외가 발생하면, 발생한 예외를 처리할 catch를 잡음
- 예외의 최고 조상인 Exception을 처리하는 catch 블록은 모든 종류의 예외를 처리 가능
- catch - nullexception
- catch - arithmethicexception
- catch - exception
7. Finally 블록
- 예외의 발생 여부와 관계없이 실행되어야 하는 코드
- 선택적으로 사용 가능하며 try - catch - finally 순서
- 예외 발생하면 try -> catch -> finally
- 예외 미발생하면 try -> finally
- try 또는 catch 블록에서 return 문을 만나도 finally는 수행된다
8. 메소드에 예외 선언
- 예외 처리를 하는 다른 방법
- 사실 예외 처리하는 것이 아니라 호출한 메소드로 전달 해줌 (책임전가)
- 호출한 메소드에서 예외처리를 해야만 할 때 사용
void nethod() throws Exception {
}
- try-catch를 여러 번 사용할 바에 throws로 줄이고 마지막 책임자에게 try-catch로 넘기는 수단
남은 기간 커리큘럼
2. 예외 - 기본 API
3. 기본API - git
4. 컬렉션 - 제네릭
5. 스트림 - 람다식
6. 스레드 - DB
7~8. 개인 프로그램