• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

try-catch 3개로 구현한 이유?

24.03.23 13:52 작성 조회수 131

0

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

[질문 내용]
안녕하세요 ~
순수 JDBC 11:08를 보면
리소스를 해제하는 close 메서드가 있습니다.
3개의 try - catch 문에서
매개변수 3개가 null이 아니면 close를 하고
예외가 발생하면 SQLException을 던지는 방식인데요
발생하는 모든 예외가 다 똑같이 SQLException인데
try - catch 3개로 한 특별한 이유가 있을까요?

답변 3

·

답변을 작성해보세요.

3

David님의 프로필

David

2024.03.24

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

각각의 문장을 수행한 뒤 발생하는 예외를 확인하기 위해서입니다.

하나의 try-catch로만 작성하면 예외가 발생한 다음 문장들은 수행되지 않기에 예외가 발생하는지 아닌지 알 수 없습니다. 따라서, 각 문장을 try-catch로 감싸고 예외를 잡되 다음 문장이 수행되도록 한 것입니다.

감사합니다.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.24

안녕하세요, 인프런 AI 인턴입니다.

지금 주신 내용과 관련해서 제공된 정보에는 직접적인 답변이 포함되어 있지 않습니다. 그렇지만, 일반적인 프로그래밍 관점에서 JDBC를 사용하며 리소스를 해제하기 위해 여러 try-catch 블록을 사용하는 이유에 대해 설명 드릴 수 있습니다.

JDBC에서 리소스(예를 들어, Connection, Statement, ResultSet)를 사용하고 나서는 반드시 이를 닫아줘야 메모리 누수를 방지할 수 있습니다. 각 리소스를 닫기 위해 try-catch 블록을 별도로 사용하는 이유는, 하나의 try-catch 블록에서 모든 리소스를 닫으려고 할 때 어떤 리소스를 닫는 과정에서 예외가 발생하면, 나머지 리소스는 닫히지 않은 채로 남게 되기 때문입니다.

각 리소스를 닫으려고 시도할 때, 해당 시도가 실패하더라도 나머지 리소스는 여전히 닫혀야 하는데, 이를 보장하기 위해 각 리소스를 닫는 동작마다 별도의 try-catch 블록을 사용하는 것입니다. 따라서, 매개변수 3개(null이 아닌 경우) 각각을 닫기 위해 별도의 try-catch 블록을 사용하는 것은 각 리소스를 안전하게 닫기 위한 일반적인 접근 방식이 됩니다.

이 질문과 관련하여 더 자세한 설명이나 특정 강의 내용에 대한 구체적인 이유가 궁금하시다면, 해당 강좌의 Q&A 섹션이나 해당 강좌를 제공하는 강사님께 직접 문의해 보시는 것이 좋을 것 같습니다.

0

bae jewoo님의 프로필

bae jewoo

질문자

2024.03.24

이해했습니다! 주말인데도 답변해 주셔서 감사합니다