Try-with-resources

함궈·2023년 9월 2일

스프링 카프카를 활용한 코드를 작성하던 중,
finally 구문 안에서 예외를 발생시키려고 하니 아래 이미지와 같이 인텔리제이에서 밑줄표시가 생김.

finally 문 내에서 예외를 던질 경우

  1. 주로 finally 구문은 리소스의 적절한 반환을 보장하기 위해 사용된다.
    이 finally 구문 안에서 예외가 발생한다면, 리소스의 반환을 보장할 수 없게 된다.

  2. 만약 main 구문 안에서 예외가 발생하더라도, finally 구문 내에서 발생한 예외가 앞선 예외 발생을 개발자가 인지하지 못하게 할 수도 있다.

해결 방안

try-with-resources 블록을 사용함으로써 위 문제를 해결할 수 있다.
블록 내에 위치할 resource가 java.lang.AutoCloseable를 구현했다면, try-with-resource 블록이 해당 리소스 반환을 반환해줄 것이다.

try-with-resources 적용 후:


client.close() 를 호출하지 않아도 자동으로 리소스를 반환한다.

stackexchange 링크

0개의 댓글