
Effective Java 9. try-with-resources를 사용하자
2022. 10. 4. 23:36
Java/Effective Java
try-finally 전통적으로 자원이 제대로 닫힘을 보장하기 위해서는 try-finally가 쓰였다. 하지만 해당 방식은 아래와 같이 두 가지 문제점이 있다. 문제점 자원이 많아질 수록 try 중첩문이 발생하여 복잡해진다. 아래 예시에서 try 문에서 exception 이 발생할 경우, finally 문에서도 exception 이 발생한다. 그럼 finally 문의 로그만 남아 실제로 try 문에서 난 에러는 surpressed 되며, 디버깅하기가 힘들어진다. try { return br.readLine(); } finally { br.close(); } 실제고, 2007년 당시 자바 라이브러리에서 close 를 제대로 구현한 비율은 3분의 1정도라고 한다. try-with-resources 이에 대한..