해결된 질문
작성
·
85
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요. 영상 에서 try-catch문과 throws으로, 예외를 잡는 것과, 던지는 것을 보았습니다.
현실적 으로는, 이 두 가지 사항이 잘 이해가 가는데,
ex)
들수 있는 물건 - try-catch
무거운 물건을 들때 도움을 요청 - throws
try-catch : 사람의 힘이나 기계의 힘으로 충분이 해결 가능
throws : 사람의 힘으로 안됨- > 기계의 힘으로도 안됨 -> 포기
코드적 으로는
어떨 때에는 try-cath로 잡고,
어떨 때에는 throws로 던져야 하는지 모르겠습니다.
혹 자바 예외 처리 실습 부분에서 이런 부분을 가르쳐 주시나요?
아니라면 어떨 때 던지고, 어떨 때 던져야 하는지 가르쳐 주시면 감사하겠습니다.
답변 부탁 드립니다.
답변 1
1
안녕하세요. 생각하는자님, 공식 서포터즈 y2gcoder입니다.
학습하신 것과 말씀하신대로 해당 로직 내에서 정상 흐름으로 반환하여, 호출부에서는 정상 흐름을 처리해야 할 때는 try-catch 로 잡고, 그 외에 해당 에러를 처리할 수 없어 호출부로 던져야 할 때는 throws를 사용하는 것이 좋습니다.
예시를 들자면 저희가 만든 프로젝트 백엔드에서 대량 메일 발송 API를 가지고 있고, 이 기능을 위해 메일 발송을 위한 외부 클라이언트 SDK를 사용하고 있다고 가정해보겠습니다. 해당 메일 클라이언트는 발송이 실패했을 때 예외를 던지고 있습니다. 그리고 우리는 대량 메일 발송 결과를 모아 응답으로 던져줘야 합니다. 이 때는 호출부까지 예외를 던지면 발송 결과 응답을 정상적으로 만들 수가 없습니다. 그보다는 메일 발송을 위해 SDK에 의존해 만든 클라이언트 코드에서 try-catch 를 이용해 예외 발생 시 실패에 대한 응답 결과로 만들어 줘야 합니다.
감사합니다.
y2gcoder님 어떨때 던지는지, 잡는지, 알켜 주시어서, 감사합니다.