강의

멘토링

로드맵

Inflearn brand logo image

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

진우님의 프로필 이미지
진우

작성한 질문수

김영한의 실전 자바 - 중급 1편

try-with-resources

try-with-resources질문

작성

·

103

·

수정됨

0

 마지막 강의의 2: 10에서 close()메서드에서 예외가 안터진다 한들, 굳이 throws Exception을 "꼭" 제거해야하는 이유가 있나요? 어차피 안 없애도 문제는 없지 않나요? 메서드 옆에 throws Exception이거 적어주는 것은 단지 Exception예외가 일어났을때, 이 메서드에서 처리하지 않고 , 호출한 곳으로 예외를 던진다는 뜻인데.. 왜 꼭 제거하라고 한 건지 이해가 안갑니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 진우님께서 질문하신 try-with-resources와 관련된 주제에 대해 설명드리겠습니다.

throw Exception을 제거해야 하는 이유

close() 메서드가 throws Exception을 선언하고 있는 경우, 이 메서드를 사용하는 모든 곳에서도 예외를 처리해야 하는 의무가 생깁니다. 그러나, 실제로 해당 메서드에서 예외가 발생하지 않는다면, 불필요하게 throws를 선언함으로써 코드가 복잡해질 수 있습니다.

  1. 코드의 간결성: close() 메서드가 실질적으로 예외를 던지지 않는다면, throws Exception을 제거하여 코드를 더욱 간결하게 유지할 수 있습니다. 이렇게 하면 close() 메서드를 호출하는 다른 코드에서도 예외 처리 블록을 생략할 수 있게 되며, 코드의 가독성을 높여줍니다.

  2. 예외의 과잉처리 방지: 별다른 이유 없이 메서드에 throws Exception을 남겨두면, 실제로 예외를 처리하지 않아도 될 곳에서 try-catch 블록을 추가하거나 메서드 체이닝에 불필요한 예외 던지기가 요구될 수 있습니다.

  3. 실제 상황 반영: 메서드에서 throws가 선언된 경우, 이 메서드를 사용하는 개발자에게는 해당 메서드가 예외를 던질 가능성이 있음을 암시합니다. 그러나, 만약 메서드 내에서 예외가 발생하지 않도록 설계된 경우라면, 이러한 예외 던지기 선언은 오해를 초래할 수 있습니다.

다음 자료들도 관련된 개념에 대해 더 깊이 이해하는 데 도움이 될 수 있습니다:

질문하시면서 이해가 어려운 부분이나 추가적인 설명이 필요한 사항이 있다면 언제든지 질문해주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

진우님의 프로필 이미지
진우

작성한 질문수

질문하기