7. finally블럭
- 예외의 발생여부에 상관없이 실행되어야 할 코드를 포함시킬 목적으로 사용
- try블럭에서 return문이 실행되는 경우에도 finally블럭의 문장들이 먼저 실행된 후, 현재 실행 중인 메서드 종료
Ex)
try { } catch (Exception e1) {
} finally {
}
8. 자동 자원 반환 - try-with-resources문
- 사용했던 자원을 반환해야 하는 경우 사용
- try-with-resources문의 괄호 안에 객체를 생성하는 문장을 넣으면, 이 객체는 따로 close()를 호출하지 않아도 try블럭을 벗어나는 순간 자동적으로 close()가 호출 됨
이 것이 가능하려면, 클래스가 AutoCloseable이라는 인터페이스를 구현한 것이어야만 함
9. 사용자정의 예외 만들기
- 기존의 정의된 예외 클래스 외에 필요에 따라 프로그래머가 새로운 예외 클래스를 정의하여 사용할 수 있음
- 보통 Exception클래스 또는 RuntimeException클래스로부터 상속받아 클래스를 만듦
(필요에 따라서 알맞은 예외 클래스를 선택할 수도 있음)
10. 예외 되던지기
- 예외 되던지기: 예외를 처리한 후에 인위적으로 다시 발생시키는 방법
- catch문에서 필요한 작업을 행한 후에 throw문을 사용해서 예외를 다시 발생시킴
- 예외가 발생할 메서드에서는 try-catch문을 사용해서 예외처리를 해줌과 동시에 메서드의 선언부에 발생할 예외를 throws에 지정해줘야 함
java의 정석 chapter8