java6 까지

close가 필요한 자원을 프로시져 종료전에 꼭 닫으려면 finally를 써야 했다.


FileWriter writer = null;

try {
	writer = new FileWriter(file);
	writer.write("contents");
} catch (Exception e) {
	// TODO: handle exception
}finally {
	try {
		writer.close();
	} catch (IOException e) {
		// TODO handle exception
		e.printStackTrace();
	}
}


try catch 블럭도 혐오스러운데 finally 까지 붙이니 정말 보기 싫다.

스코프때문에 변수를 null로 선언해야 하는 꼴보기 싫음까지 추가로...

close를 하려면 거기도 예외처리를 해줘야 해서 또 try-catch 블럭을 넣어야 한다.

물론 메서드에서 쓰로우해주는게 좋다.


java7 부터는 많은 부분을 개선해 줬다.

try-with-resources 방식을 쓰면 한결 낫다.


try(FileWriter writer = new FileWriter(file); ) {
	
	file.write();
}


try 블럭이 끝나면 file 자원을 자동으로 close해준다.


'Java' 카테고리의 다른 글

Java Applet ReflectPermission  (0) 2018.03.28
Java Applet 이런 젠장  (0) 2018.03.28
BigDecimal을 사용하는 이유  (0) 2018.03.18
autoclose resource : try-with-resource  (0) 2018.03.09
자바 자체 인증키 발급  (0) 2018.01.02
final 변수 설정을 하는 이유  (0) 2017.12.21

+ Recent posts