728x90
오류와 예외
- 오류(Error)는 예상하지 못한 비정상적인 상황 (시스템 레벨에 발생한 심각한 수준)
- 예외는 발생할 상황을 미리 예측하여 처리하는 상황 (개발자가 구현한 로직에서 발생)
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 |