try-finally 의 문제점
try 문과 finally 문 모두에서 Exception 이 발생하면 finally 에서 발생한 Exception 만 보이기 때문에 디버깅이 어렵다.
try-with-resources 를 사용하자
- 예외 발생 시 close 문에서 나오는 예외는 숨겨지기 때문에 try 문에서의 예외를 확인할 수 있다.
- catch 문을 사용하여 예외 발생 시 또 다른 값을 반환하도록 할 수 있다.
public class SampleResource implements AutoCloseable{
public void hello(){
System.out.println("Hello!");
}
@Override
public void close() throws Exception {
System.out.println("Close!");
}
}
public class Main {
public static void main(String[] args) throws Exception {
try(SampleResource sampleResource = new SampleResource()){
sampleResource.hello();
}
}
}
'책, 강의 정리 > 이펙티브자바' 카테고리의 다른 글
[아이템 29] 이왕이면 제네릭타입으로 만들라 (0) | 2020.03.27 |
---|---|
[아이템 15] 클래스와 멤버의 접근 권한을 최소화하라 (0) | 2020.03.16 |
아이템 [8] - finalizer 와 cleaner 사용을 피하라 (0) | 2020.01.10 |
아이템 [7] - 다 쓴 객체 참조를 해제하라 (0) | 2020.01.10 |
아이템 [6] - 불필요한 객체생성을 피하라 (0) | 2020.01.06 |