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정보교육원 강의자료
'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 |