예외처리 - 2. 예외(Exception)의 전가(throws)

Ⅱ. 예외(Exception)의 전가(throws)

1. 예외의 전가(throws)

 - 예외 처리를 자신이 호출된 지점으로 전가 (이 경우 예외처리는 전가받은 상위위치에서 처리)

    → 즉, 예외가 발생하는 지점에서 예외 처리하지 않고, 바깥으로 넘김

 - 메소드이름(…) throws 예외클래스

// Example
package sample;

public class Main {
	public static void methodA() throws Exception {
		methodB();	// B가 A로 발생 예외를 전가함
	}
	public static void methodB() throws Exception {
		methodC();	// C가 B로 발생 예외를 전가함
	}
	
	// throws : 발생 예외를 전가함
	public static void methodC() throws Exception {
		// 예외 객체를 생성
		Exception e = new Exception();
		throw e;	// 여기에서 예외가 발생함
	}

	public static void main(String[] args) {
		try {		// A가 main으로 발생 예외를 전가함
			methodA();
		}
		catch(Exception e) {
			e.printStackTrace();	// 예외 전가를 추적함
		}
	}
}