본문 바로가기
Language/JAVA

JAVA :: 자바 문법 정리(13)

by stern07s 2023. 5. 2.
728x90
반응형

JAVA :: 자바 문법 정리(13)

메서드에 예외 선언하기

예외를 처리하는 방법에는 try-catch 문을 사용하는 것 외에, 예외를 메서드에 선언하는 방법이 있다. 메서드에 예외를
선언하려면, 메서드의 선언부에 키워드 throws 를 사용해서 메서드 내에서 발생할 수 있는 예외를 적어주기만 하면 된다. (예외를 발생시키는 키워드 throw 와 예외를 메서드에 선언할 때 쓰이는 throws 를 구별해야 한다.)


메서드에 예외를 선언할 때 일반적으로 RuntimeException 클래스들은 적지 않는다.


예외를 메서드의 throws 에 명시하는 것은 예외를 처리하는 것이 아니라, 자신(예외가 발생할 가능성이 있는 메서드)을 호출한 메서드에게 예외를 전달하여 예외처리를 떠맡기는 것이다.


예외를 전달받은 메서드가 또다시 자신을 호출한 메서드에게 전달할 수 있으며, 이런 식으로 계속 호출스택에 있는 메서드들을 따라 전달되다가 제일 마지막에 있는 main 메서드에서도 예외가 처리되지 않으면, main 메서드 마저 종료되어 프로그램이 전체가 종료된다.

 

finally 블럭

finally 블럭은 try-catch 문과 함께 예외의 발생여부에 상관없이 실행되어야할 코드를 포함시킬 목적으로 사용된다.


try 블럭에서 return 문이 실행되는 경우에도 finally 블럭의 문장들이 먼저 실행된 후에, 현재 실행 중인 메서드를 종료한다. 마찬가지로 catch 블럭의 문장 수행 중에 return 문을 만나도 finally 블럭의 문장들은 수행된다.

 

자원 자동 반환 - try-with-resources 문

JDK 1.7 부터 try-with-resources 문이라는 try-catch 문의 변형이 새로 추가되었다.


try-with-resources 문의 괄호()안에 객체를 생성하는 문장을 넣으면, 이 객체는 따로 close()를 호출하지 않아도 try 블럭을 벗어나는 순간 자동적으로 close()가 호출된다. 그 다음에 catch 블럭 또는 finally 블럭이 수행된다.


try-with-resources 문에 의해 자동으로 객체의 close()가 호출될 수 있으려면, 클래스가 AuthCloseable 이라는 인터페이스를 구현한 것이어야만 한다.

반응형

'Language > JAVA' 카테고리의 다른 글

JAVA :: 자바 문법 정리(12)  (0) 2023.05.01
JAVA :: 자바 문법 정리(11)  (0) 2023.04.30
JAVA :: 자바 문법 정리(10)  (0) 2023.04.29
JAVA :: 자바 문법 정리(9)  (0) 2023.04.28
JAVA :: 자바 문법 정리(8)  (0) 2023.04.27

댓글