SSAFY11th-book-study / book-study

SSAFY 11기 6반의 '토비의 스프링 스터디'
0 stars 0 forks source link

[4.1] checked 예외는 언제 사용하는 것인가?? #37

Closed limjongheok closed 5 months ago

limjongheok commented 5 months ago

제가 이해한 바로는 checked 예외는 강제성이 있어 try catch 문이 강제 되어 확실히 복구 가능 할 경우 사용하고 unchecked 예외 같은 경우 throw 로 던져주어 요청 쓰레드를 종료한다는 느낌으로 이해 하였습니다. 그럼 이때 checked 예외처리는 책에서도 확실히 복구 가능할 경우 사용할 경우 사용한다 적혀 있는데 이 확실히 복구 가능할 경우가 무엇인지 궁금 합니다. 또한 책에서는 이 외부 요인일 경우 checked 언어를 사용해 Max_RETRY 만큼 재시도하는 코드를 짰는데(p.286) 그렇다면 만약 checked 예외를 사용시 (Max_RETRY 만큼 재시도하는 코드) 이러한 고려하는 코드를 안짤 시 쓰레드 적으로 교착 현상등 위험 코드가 될 수 있다 생각하는데 그럼 무조건 적인 안전한 unChecked 예외처리가 더 좋은 코드 아닐까 질문을 올립니다.

질문을 요약하자면

  1. checked 예외를 사용할 확실한 복구 가능한 상황이 언제인가??
  2. checked 예외를 사용시 쓰레드적으로 위험을 가할 수 있다고 생각하는데 그렇다면 항상 더욱 안전한 unChecked 예외를 사용하는것이 옳지 않은가??
  3. 그렇다면 대체 checked는 언제 사용하라는 것인가??
limjongheok commented 5 months ago

과거 싱글 스레드 환경 이였을때는 무조건 적으로 컴파일에서 잡아주는 checked 예외가 필요 애플리케이션 서비스 환경에서 사용자 실수로 나는 에러는 checked 예외가 필요할 수도 있음(복구 가능하니)