try-with-resources

Ina Kim·2021년 1월 13일
0

Java_초급

목록 보기
6/11

입출력 예외처리시 Autocloseable 이용하기

입출력을 수행하기 위해서는 데이터를 주고 받는 통로를 열어주어야 한다. 이때, 입출력에 예외가 발생하게 됐을 때 특별한 처리를 해주지 않는다면 입출력을 수행하던 스트림이 open 되어진 상태로 남겨지게 된다. close하지 않은 빨대가 쌓이게 되면 메모리 부족으로 프로그램이 멈출수도 있다. 입출력으로 인한 메모리 누수를 방지하기 위해서는 예외처리를 잘 해주어 예외가 발생한 경우에도 자원이 close 되어 잘 반납될 수 있도록 처리해 주어야 한다.

try(FileOutputStream out = new FileOutputStream("exFile.txt")){ 
//...이후 입출력 로직 처리... 
}catch(Exception e){ 
e.printStackTrace(); 
}

try - with - resource 구문을 사용하게 되면 입출력 처리시 예외가 발생하는 경우 JVM이 자동으로 close()를 호출하여 자원을 반납시켜준다. 즉, 따로 finally(), close()에 종료처리 하지 않아도 된다. try() 안에 입출력 스트림을 생성하는 로직을 작성하는데 이때 해당 객체는 AutoCloseable 인터페이스를 구현한 객체여야 한다. 불필요한 예외처리 구문들이 사라졌기 때문에 소스의 가독성이 훨씬 증가 된다.

catch(Exception e){ e.printStackTrace(); }
Exception 이 발생한 이유와 위치는 어디에서 발생했는지 전체적인 단계를 다 출력한다. 위치까지 정확하게 알려주어서 어디서 에러가 발생하였는지 빠르게 파악이 가능하다.

출처: https://dololak.tistory.com/67 [코끼리를 냉장고에 넣는 방법]
profile
기록하는것을 좋아합니다

0개의 댓글