본문 바로가기
Java/정리

[Java] 예외처리_try with resource

by 콧등치기국수 2021. 5. 25.
 try ~ with ~ resource 예외처리

 

기존에 스트림을 닫기위해 finally에 작성되었던 close( )처리 안해줘도 된다.

사용 후 꼭 닫아주어야 하는 스트림을 자동으로 close되게 하는 문장이다. 

 

 

1. 작성법

try (반드시 close 처리 해야 하는 객체에 대한 생성 구문 ) {
	// 예외가 발생할 구문 반드시 예외를 처리해야 하는 구문 )
}

catch( 처리할예외클래스명 레퍼런스) {
	// 발생 한 예외에 대한 처리 구문 작성
}

▶ 객체.close()를 해주지 않아도 된다.

 

 

2. try ~ with ~ resource 이용한 IOException , FileNotFoundException 예외처리

 

run실행파일에서 method4()를 호출하는 method1() 메소드를 실행시켰다.

method4에서 예외처리 중 IOException 는 throws를 이용해서 처리하므로 method4를 호출했던 method1에서 try~catch문으로 처리하는 것을 볼 수 있다.

public void method1() { 
	try {
		method4();
	} catch (IOException e) { 
		// TODO Auto-generated catch block
		e.printStackTrace();
	} finally {
		System.out.println("종료!!");
	}
}
public void method4() throws IOException {
		
	try(BufferedReader br = new BufferedReader(new FileReader(""));) {
			
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} 
}

1) FileNotFoundException  -> try~catch 이용한 예외처리

2) IOException -> throws 이용한 예외처리

==> throws를 통해 호출한 메소드에 예외처리를 넘겼다.

3) BufferedReader객체인 br에 대해 close메소드를 호출하지 않아도 문제없이 실행이 된다.

 

 

만약 method1()에서도 예외를 처리하지 않는다면 run파일에 있는 main함수에서 예외를 처리해야지만 컴파일이 된다.

 

 

 

출처 및 참고 :

KH정보교육원 강의자료

https://wikidocs.net/229

'Java > 정리' 카테고리의 다른 글

[Java] API_String관련 클래스  (0) 2021.05.27
[Java] 다형성  (0) 2021.05.25
[Java] 예외처리_BufferedReader사용  (0) 2021.05.25
[Java] 상속(Inheritance)  (0) 2021.05.19
[Java] 문자열 compareTo()_문자열비교메소드  (0) 2021.05.17