경주장

9주차 과제: 예외 처리 #9 자바의 예외 클래스들 (~03.09) 본문

JAVA/whiteship_live-study

9주차 과제: 예외 처리 #9 자바의 예외 클래스들 (~03.09)

달리는치타 2022. 3. 3. 14:54

✔️ 학습할 것 (필수)

+ 예외란?

  • 자바에서 예외 처리 방법 (try, catch, throw, throws, finally)
  • 자바가 제공하는 예외 계층 구조
  • Exception과 Error의 차이는?
  • RuntimeException과 RE가 아닌 것의 차이는?
  • 커스텀한 예외 만드는 방법

The Throwable Class


에러(Error)

컴퓨터 하드웨어의 오동작 또는 고장으로  인해 응용프로그램 실행 오류가 발생하는 것을 자바에서는 에러(error)라고 합니다. 에러는 JVM 실행에 문제가 생겼다는 것이므로 개발자는 이런 에러에 대처할 방법이 없습니다.

 

에러 클래스의 예로는

  • VirtualMachineError - 자바 가상머신(JVM) 상의에러 입니다.
    • InternalError, OutofMemoryError, StackOverFlowError, UnknownError
  • AWTError - 중대한 AWT 에러가 발생했을때 예외를 발생시킵니다.
  • ThreadDeath - deprecated된 메서드인 Thread.stop( ) 이 호출되면 대상 스레드에서 예외를 발생시킵니다.

 

예외(Exception)

예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말합니다. 예외에는 두가지 종류가 있습니다. 하나는 일반 예외(Exception)이고 다른 하나는 런타임 예외(Runtime Exception)입니다.

 

Runtime Exception과 RE가 아닌것의 차이는 아래와 같습니다.

구분 런타임 예외 Runtime Exception 일반 예외 Exception
예외 처리 필수 아님 필수
확인 시점 런타임 컴파일 타임
스프링 Default 트랜잭션 처리 예외 발생시 롤백 예외 발생시 롤백 하지 않음
발생 원인 프로그램 내부 프로그램 외부
예시 NullPointerException,
ArrayIndexOutOfBoundsException,
NumberFormateException,
ClassCastException ... 
FileNotFoundException,
SQLException ...