예외
2024. 7. 12. 15:11ㆍ토비의 스프링 6
예외
- 예외는 정상적인 프로그램 흐름을 방해하는 사건
- 예외적인 상황에서만 사용
- 많은 경우 예외는 프로그램 오류, 버그 때문에 발
예외가 발생하면
- 예외 상황을 복구해서 정상적인 흐름으로 전환할 수 있는가?
- 재시도
- 대안
- 버그인가?
- 예외가 발생한 코드의 버그인가?
- 클라이언트의 버그인가?
- 제어할 수 없는 예외상황인가?
예외를 잘못 다루는 코드
- 예외를 무시하는 코드 (catch문에 아무것도 하지 않음,단순히 프린트만 찍는것)

- 무의미하고 무책임한 throws

예외의 종류
- Error
- Exception(checked)
- RuntimeException (unchecked)
Error
- 시스템에 비정상적인 상황이 발생
- OutOfMemoryError
- ThreadDeath
체크예외(Exception)
- catch나 throws를 강요
- 초기 라이브러리의 잘못된 예외 설계/사용
- 복구할 수 없다면 RuntimeException이나 적절한 추상화 레벨의 예외로 전환해서 던질 것
예외의 추상화와 전환
- 사용 기술에 따라 같은 문제에 대해 다른 종류의 예외 발생
- 적절한 예외 추상화와 예외 번역이 필요
'토비의 스프링 6' 카테고리의 다른 글
| 서비스 추상화 (0) | 2024.07.13 |
|---|---|
| JPA를 이용한 Order저장(예외에 대해 살펴보기) (0) | 2024.07.12 |
| Spring이 제공하는 템플릿 (0) | 2024.07.11 |
| ApiExecutor 콜백과 메소드 주입 (0) | 2024.07.11 |
| 변하지 않는 코드 분리하기 (0) | 2024.07.10 |