안녕하세요.
이번 포스팅에서는 Exception Autoclose에 대해 다뤄보겠습니다.
AutoClose는
예외 처리 후, 사용된 리소스 객체를 자동으로 닫는 기법으로
AutoClosable 인터페이스를 구현한 클래스이어야 자동으로 자원을
해제할 수 있습니다.
사용방법은
try(클래스 객체명 = new 클래스()) {
예외 발생할 가능성이 있는 문장
} catch {
예외 처리 문장
}
이렇게 작성할 수 있으며
앞서 진행한 스캐너 객체는 AutoClosable 인터페이스를 구현한 클래스 이기 때문에
스캐너 객체로 진행해 보도록 하겠습니다.
바로 예제로 알아보도록 하겠습니다.
항상 스캐너 객체는 위쪽에 생성을 했지만
이번에는 오토클로즈를 예시안으로 작성하기 위해
try문에 작성을 했으며 그로 인해 아래 sc.close()를 선언하지 않아도
자동으로 메모리를 해제하게 됩니다.
이렇게 될 경우 ArithmeticException과 문자열이 입력되었을 경우 발생하는
InputMismatchException 이 발생할 수 있습니다.
ArithmeticException은 첫 번째 catch문에서 InputMismatchException은
두 번째 catch문에서 걸러지게 되며
e.printStackTrace는 해당 예외 발생 코드를 추적하여 원인을 단계별로 출력하게 되며
아무것도 작성하지 않았을 때 자동으로 예외를 추적해 주던 이 예외와 같은 기능을 합니다.
AutoClose는 자동으로 객체를 해제하여 메모리를
효율적으로 관리할 수 있게 해 주며
이 경우에 try Catch 문 다음 스캐너 객체는 사용이 불가해져
새롭게 선언해야 합니다.
이런 식으로 파일업로드 객체 파일 생성 객체 등
업로드 후 생성 후 자동으로 리소스를 해제해 주는 역할을 하게 됩니다.
이번 포스팅은 핵심만
정리했는데 이해되셨나요?
이해되지 않는 부분은
댓글을 통해 남겨주시면
성실하게 답변 달도록 하겠습니다.
다음 포스팅은 예외전가(Exception Throws)에 대해 포스팅하도록 하겠습니다.
감사합니다

'개발언어 > JAVA' 카테고리의 다른 글
Java 개발을 위한 예외 강제발생과 사용자 정의 예외 클래스 (0) | 2023.09.17 |
---|---|
Java 개발을 위한 예외전가(Exception Throws) (0) | 2023.09.17 |
Java 개발을 위한 다중Catch 멀티Catch 예외처리(Exception) (0) | 2023.09.17 |
Java 개발을 위한 TryCatch 예외처리(Exception Handling) (0) | 2023.09.17 |
Java 개발을 위한 다중상속과 다중구현 (2) | 2023.09.03 |