본문 바로가기

객체 지향 프로그래밍 - 예외 처리

예외 떠넘기기

예외 떠넘기기

  • 메소드 내부에서 예외 발생 시 throws 키워드 이용해 메소드를 호출한 곳으로 예외 떠넘기기
  • throws는 메소드 선언부 끝에 작성. 떠넘길 예외 클래스를 쉼표로 구분해서 나열


    출처, 이것이 자바다


package ch11.sec05;

/*
 * Class.forName("java.lang.String2") : 예외가 발생할수 있는 메소드
 * 1)예외전가(예외 떠넘기기) : throws Exception
 * 2)예외처리 : try~catch구문
 */

public class ThrowsExample1 {

    public static void main(String[] args) {

        //예외처리
        try {
        findClass();
        }catch(ClassNotFoundException e) {
            System.out.println("예외 처리: " + e.toString());
        }
    }

    //예외 떠넘기기
    public static void findClass() throws ClassNotFoundException {
        Class.forName("java.lang.String2");
    }
}

  • 나열할 예외 클래스가 많으면 throws Exception 또는 throws Throwable 만으로 모든 예외 떠넘기기


    출처, 이것이 자바다


package ch11.sec05;

/*
 * Class.forName("java.lang.String2") : 예외가 발생할수 있는 메소드
 * 1)예외전가(예외 떠넘기기) : throws Exception
 * 2)예외처리 : try~catch구문
 */

public class ThrowsExample2 {

    //예외 떠넘기기 - JVM에게 예외를 넘겨, 최종적으로 처리하게 된다.
    public static void main(String[] args) throws Exception {

        findClass();
    }

    //예외 떠넘기기
    public static void findClass() throws ClassNotFoundException {
        Class.forName("java.lang.String2");
    }
}