백앤드 이야기/JAVA&Spring

[JAVA] Checked Exception, Unchecked Exception

한희성 2023. 12. 14.
반응형

* RuntimeException 상속받지 않은 예외 Checked Exception

* RuntimeException 상속받은 Unchecked Exception

   - 개발자의 실수에 의해 발생하는 예외이기때문에 runtime 및 자식 까지모두 예외처리를 강제하지 않는다

 

Error와 Exception 차이

프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있습니다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 합니다. 여기서 발생 시점에 따라 아래와 같이 세 가지로 나뉩니다.

  1. 컴파일 에러: 컴파일 시에 발생하는 에러
  2. 런타임 에러: 실행 시에 발생하는 에러
  3. 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것

글자 그대로 컴파일 에러는 컴파일할 때 발생하는 에러이고, 프로그램의 실행 도중에 발생하는 에러를 런타임 에러라고 합니다. 논리적 에러는 컴파일도 잘되고 실행도 잘되지만 개발자가 의도한 것과 다르게 동작하는 것을 말합니다. ex) 창고의 재고가 음수가 되거나, 게임 프로그램에서 비행기가 총알을 맞아도 죽지 않는 경우

여기서 런타임 에러에 집중하시면 되는데, 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램의 오류를 '에러(Error)'와 '예외(Exception)'로 구분했습니다.

  • 예외(Exception): 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 것
  • 에러(Error): OutOfMemoryError, StackOverflowError와 같이 발생하면 복구할 수 없는 심각한 오류

에러가 발생하면 프로그램의 비정상적인 종료를 막을 길이 없지만, 예외는 발생하더라도 프로그래머가 이에 대한 적절한 코드를 미리 작성해 놓음으로써 프로그램의 비정상적인 종료를 막을 수 있습니다.

 

 

Checked Exception : 컴파일 시점에 예외처리를 강제하기때문에 롤백 X, roolbackFor 적용 해야함

     - SQLException, IOException

Unchecked Exception : 기본적으로 runtime 을 상속받고 있기때문에 별도 옵션 없이도 롤백 적용

     - try/catch throw 해야 롤백 적용

 

 

출처 : https://dkswnkk.tistory.com/677

반응형

댓글

💲 추천 글