JAVA

[JAVA] 예외(Exception)

집한구석 2021. 6. 7. 21:14
728x90

오류와 예외 

  • 오류(Error)는 예상하지 못한 비정상적인 상황 (시스템 레벨에 발생한 심각한 수준)
  • 예외는 발생할 상황을 미리 예측하여 처리하는 상황 (개발자가 구현한 로직에서 발생)

Exception 개념 및 설명

https://nesoy.github.io/articles/2018-05/Java-Exception 참고

  • Throwable : JAVA 언어의 모든 오류 및 예외의 슈퍼클래스 
  • Error : Throwable의 하위클래스, 응용프로그램의 심각한문제를 나타냄
  • Exception : 응용프로그램이 catch 할 수 있는 조건을 나타내는 Throwable 형식
  • Exception은 처리 방식에 따라서 Checked Exception과 UncheckedException(Runtime Exception)으로 분류됨

Checked Exception / Unchecked(Runtime) Exception 

  Checked Exception Unchecked(Runtime) Exception
처리여부 반드시 예외처리 해야함 처리를 강제하지 않음
확인시점 컴파일 단계 실행단계
예외발생시 트랜잭션 처리 roll-back 하지 않음 roll-back 함
  • 일반적으로 컴파일 단계에서 명확하게 Exception 체크가 가능하면 Checkd Exception, 실행과정 중에 발견되는 건 Unchekced(Runtime) Exception

예외처리시 참고 및 고려

  • Exception 무시하지 않기 : catch절에서 아무것도 하지 않는 코드 X
  • java.lang.Exception 남용금지 : 단순하게 Exception을 통째로 선언하면 자세하게 파악이 어려움
  • Runtime Exception 활용 검토 : Runtime Exception을 Default로 사용하고, 특별한 이유가 있으면 Checked Exception 처리 
  • 추상화 Layer에 맞는 Exception 던지기 : 적절한 수준으로 추상화된 Exception 정의, Service Layer에서는 비즈니스로직에 맞는 Custom Exception을 정의하여 사용

 

'JAVA' 카테고리의 다른 글

[JAVA] 일급컬렉션  (0) 2021.06.10
[JAVA] Map / getOrDefault  (0) 2021.06.10
[JAVA] 싱글턴 패턴  (0) 2021.06.05
[JAVA] JVM 구조  (0) 2021.06.03
[JAVA] Enum  (0) 2021.06.02