[Java] 클린 코드 Try-With-Resources를 사용하자
Java를 사용하면서 입출력 로직이나 DB 커넥션을 통해 자원을 열었다가 닫는 작업을 많이 할 것이다.
보통으로는 Try-Catch-Finally를 통해 자원을 사용하고 닫았다는 반복하며 필요 없는 코드들이 너무 많아지는 걸 볼 수 있다.
그러나 자바 7부터 지원되는 Try-With-Resources 이러한 불편함을 줄여준다.
간단하게 두 개의 코드를 비교해보며 알아보자.
Try-Catch-Finally
public static void main(String[] args) {
FileOutputStream out = null;
try {
out = new FileOutputStream("test.txt");
// 입출력 로직 구현
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close(); // close 하다가 예외가 발생할 수 있다.
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Try-With-Resources
public static void main(String[] args) {
try(FileOutputStream out = new FileOutputStream("test.txt")) {
// 입출력 로직 구현
}
catch(IOException e) {
e.printStackTrace();
}
}
이와 같이 불필요한 자원을 닫아주는 close()를 자동으로 처리해 준다.
한 가지 유의할 점은 try() 안에서 객체를 선언해 주어야 한다는 것이다.
다른 글 읽어보기 ⬇️
regexp
정규표현식의 패턴
Method