try-with-resources와 오류 보존 예제가 실행되는 순서
자원을 선언 순서로 획득에서 시작해 역순 close와 suppressed 예외 보존까지 값과 책임이 이동한다.
-
1
자원을 선언 순서로 획득
try 블록을 벗어날 때 성공 여부와 관계없이 close가 호출됩니다.
-
2
본문 작업 실행
Reader가 InputStream 위에 있다면 Reader를 나중에 선언해 먼저 닫히게 합니다.
-
3
역순 close와 suppressed 예외 보존
close도 실패하면 getSuppressed()로 추가 예외를 확인할 수 있습니다.
실행 순서 본문 use 실패가 주 예외로 남고 두 자원의 close 실패는 선언 역순으로 suppressed에 보존됩니다.