# 예외처리

임성혁·2022년 8월 14일

자바 기초

목록 보기
25/32

1. 프로그램 오류

  • 컴파일 에러 : 자바 문법의 오류 / 미리 잡아줌
  • 런타임 에러 : 실행 중에 오류 / 예외 처리 구간
  • 논리적 / 컨텍스트 에러 : 의도와 다르게 동작 (사람만 판단할 수 있는 영역)
  • Java의 런타임 에러 : 에러와 예외
    • 에러(error) : 심각한 오류
    • 예외(exception) : 수습 가능한 미약한 오류

2. 예외처리의 정의와 목적

  • 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성
  • 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지

3. 예외처리구문 (try - catch)

  • 예외처리를 하고 싶으면 try - catch
try{
	// 예외가 발생할 수 있는 코드 작성
} catch (ABC_Exception e){
	// ABC 발생하는 예외처리
} catch (123_Exception e){
	// 123 발생하는 예외처리
}

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. 개인 프로그램

profile
열정

0개의 댓글