작성
·
151
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
여기에 질문 내용을 남겨주세요.
강사님께서 throws Exception 은 최악이 수라고 하셨습니다.
그래서 저는 개발할때 throws Exception 을 붙인곳을 모두 제거하고 runtimeException 만 throws 되도록 구현했습니다.
근데 만약 쿼리가 잘못되거나 디비서버가 다운되는 현상이 발생되어 쿼리를 호출해서 객체에 담는 부분(서비스단) 에서 오류가 발생됐다면 이는 체크예외(Exception) 이기때문에 컨트롤러단으로 throws가 안될텐데 그냥 서비스단에서 에러를 빵! 터트리면 되는건가요?
답변 1
0
안녕하세요. ohmyfun님, 공식 서포터즈 y2gcoder입니다.
최종적으로 예외를 잡아줘야 하는 곳에서는 결국 Exception을 받아서 처리해줘야 합니다! 예를 들어
@ControllerAdvice(RestControllerAdvice) + @ExceptionHandler 조합으로 웹에서 예외 응답을 처리하는 곳에서는 예외 응답의 규격을 통일해주기 위해 Exception 의 처리도 해주는 것 같습니다!
그리고 말씀하신 경우에서는 DB 관련 체크 예외가 발생했을 때 스프링에서 적절하게 런타임 에러로 바꿔서 던져주는 기능을 제공하고 있습니다!(영한님의 DB 1편을 들어야 하는 이유!)
감사합니다.