인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

종운님의 프로필 이미지
종운

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

예외 포함과 스택 트레이스

체크 예외 -> 언체크 예외 전환 시 질문

해결된 질문

작성

·

469

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요 체크 예외를 런타임 예외로 변환하는 과정에서 강의의 예시에서는 ConnectException을 RuntimeConnectException으로, SQLException은 RuntimeSQLException으로 변경해서 throws가 전파되는 것을 막는 모습을 볼 수 있었는데요.
이런 상황에 있을 때, SQLException이나, ConnectException같은 경우는 예외가 발생했을 때 애플리케이션 단에서 처리를 못하니, 예외 문서에 작성해두고, 예외를 잡지 말고 발생하게두나요? Controller 사용중이라면 ControllerAdvice를 통해서 해결을 하면 될텐데, Rest API를 사용중이라면 RestControllerAdvice에서 ExceptionHandler를 통해 예외를 잡지 않고 강의에서 말씀하신 것처럼 500으로 던지는 지가 궁금합니다.
강의의 초점이 막을 수 없는 체크 예외가 발생했을 때 이를 throws를 통해 전파하기보다 런타임 예외로 바꿔서 예외 문서를 잘 처리해서 깔끔한 코드를 만들자로 이해하면 되는 걸까요?

답변 1

3

안녕하세요. 종운님, 공식 서포터즈 David입니다.

API 서버를 구현할 때도 웹과 동일하게 구현합니다.

케이스마다 다르겠지만 예외가 발생한 경우 적절한 메시지와 함께 500 에러를 반환하도록 합니다.

예외를 전환하는 이유 중 하나는 복구할 수 없는 체크 예외 발생시, 계속해서 호출된 곳으로 예외처리를 강제(던지거나 잡거나)하지 않기 위함입니다.

감사합니다.

종운님의 프로필 이미지
종운
질문자

말끔하게 이해됐습니다 감사합니다!

종운님의 프로필 이미지
종운

작성한 질문수

질문하기