JAVA/포스팅

자바 예외 되던지기

짜집퍼박사(짜박) 2023. 11. 15. 13:43

예외를 다시 던지는(re-throwing) 것은 메서드 내에서 발생한 예외를 현재 메서드에서 처리하지 않고 호출자에게 전달하는 것을 의미합니다. 이것은 예외를 메서드 내에서 처리할 필요가 없거나 특정 조건에 따라 예외를 다시 던져야 하는 경우에 사용됩니다.

예외를 다시 던지려면 throw 키워드를 사용하면 됩니다. 주로 catch 블록 내에서 예외를 캐치한 후에 다시 던지는 경우가 많습니다. 이는 예외를 처리하고 호출자에게 전파하는 것을 가능하게 합니다.

다음은 간단한 예제입니다.

// 사용자 정의 예외 클래스
class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

// 메서드에서 예외를 던지는 클래스
class ExceptionThrower {
    public void doSomething() throws MyException {
        // 특정 상황에서 예외 발생
        throw new MyException("This is a custom exception!");
    }
}

// 호출자 클래스
public class ExceptionPropagationExample {
    public static void main(String[] args) {
        ExceptionThrower thrower = new ExceptionThrower();

        try {
            // 메서드 호출 시 예외 처리
            thrower.doSomething();
        } catch (MyException e) {
            // 호출자에서 예외 처리
            System.out.println("Caught MyException in main: " + e.getMessage());
        }
    }
}

이 예제에서 ExceptionThrower 클래스의 doSomething 메서드에서 MyException을 던지고 있습니다. main 메서드에서는 이 예외를 try-catch 블록을 사용하여 처리하고 있습니다.

예외를 던질 때 throws 키워드를 사용하여 메서드 선언에서 어떤 예외를 던지는지 명시하는 것이 좋습니다. 그러면 예외를 던지는 메서드를 호출하는 코드에서 컴파일러가 예외 처리를 강제할 수 있습니다. 또한, 예외를 던지는 메서드의 시그니처를 변경하지 않고 예외를 추가하거나 변경할 수 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 java.lang패키지  (0) 2023.11.15
자바 연결된 예외 (chained exception)  (0) 2023.11.15
사용자정의 예외  (0) 2023.11.15
자바 try-with-resources문  (0) 2023.11.15
자바 finally블럭  (0) 2023.11.14