예외 되던지기(exception re-throwing)

정순동·2023년 12월 11일
0

자바기초

목록 보기
44/89

예외 되던지기는 메서드작동중 발생한 예외를 메서드에서 try-catch문으로 처리한 다음 다시 throw를 통해 예외를 강제로 발생시키고 throws를 이용해 해당 메서드를 호출한 메서드에 전달한다.
호출한 메서드의 try-catch문에서 예외를 또 다시 처리한다.

이 방법은 하나의 예외에 대해서 예외가 발생한 메서드와 이를 호출한 메서드 양쪽 모두에서 처리해줘야 할 작업이 있을 때 사용된다. 이 때 주의할 점은 예외가 발생할 메서드에서는 try-catch문을 사용해서 예외처리를 해줌과 동시에 메서드의 선언부에 발생할 예외를 throws에 지정해줘야 한다는 것이다.

예시

	class ReThrowingTest {
    	public static void main (String[] args) {
        	try {
            	method1();
            } catch (Exception e) {
            	System.out.println("main메서드에서도 예외가 처리됐습니다.");
            }
        }
        
        void method1() throws Exception {
        	try {
            	throw new Exception();
            } catch (Exception e) {
            	System.out.println("method1메서드에서 예외가 처리됐습니다.");
                throw e;	// 굳이 new Exception으로 예외를 발생하지않고 재활용한다.
            }
        }
    }

해당 클래스를 실행하면 아래와 같이 출력된다.

	method1메서드에서 에외가 처리됐습니다.
    main메서드에서도 예외가 처리됐습니다.

method1(), main()에서 각각 예외가 발생해 try-catch문을 한개의 예외로 두개 사용할 수 있었다.

0개의 댓글