-
[Java] 자바 예외 처리 - 예외 떠넘기기(throws)프로그래밍 언어/Java 2022. 2. 10. 17:37
throws 키워드로 예외 떠넘기기
메소드에서 발생한 예외를 처리하기 어려울 때 throw 키워드를 사용하여 상위 코드로 양도한다.
즉, throw절은 예외를 처리하지 않고 발생한 예외 객체를 다른 곳으로 넘겨준다.
class MyClass { void m() { int data = 10/0; // 예외 발생 } void n() throws Exception { m(); } void p() { try { n(); } catch(Exception e) { System.out.println(e.getMessage()); } } } public class exceptiontest { public static void main(String[] args) { MyClass obj = new MyClass(); obj.p(); } }
위 코드를 보면 m() 메소드에서 예외가 발생한다.
m(), n()에서 발생하는 예외를 p() 메소드에서 try-catch문으로 처리하고 싶다면 throws 키워드로 상위 메소드로 예외 객체를 넘겨준면 된다. 즉, 예외를 상위 메소드에서 일괄처리 하는 것이다.
더 간단한 예시를 살펴보자.
public class exceptiontest { static void testException() throws Exception { int a = 10/0; } public static void main(String[] args) { try { testException(); } catch(Exception e) { System.out.println(e.getMessage()); } } }
예외를 발생시키는 testException() 메소드를 정의하고 메인 메소드에서 예외를 처리하도록 구현했다.
예외는 testException() 메소드 내에서 발생하지만 예외 처리는 메인 메소드에서 처리한다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 자바 제네릭 클래스 및 상속 (0) 2022.02.11 [Java] 자바 예외 처리(try-catch문) (0) 2022.02.10 [Java] 자바 여러 타입을 가지는 배열 만들기 (0) 2022.02.10 [Java] 자바 문자열 비교 (0) 2022.02.10 [Java] 익명클래스 (0) 2022.02.10