본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

예외처리: exception re-throwing 예외 되던지기

한 메서드에서 발생할 수 있는 예외가 여럿인 경우

몇개는 try-catch문으로 메서드내에서 자체적으로 처리하고

나머지는 선언부에 지정하여 처리함으로써 양쪽으로 나눠 처리될 수 있게 할 수 있다.

외에 하나의 예외에서도 예외가 발생한 메서드와 호출한 메서드 양쪽에서도 처리할수 있다.

 

이 방법은 하나의 예외에 대해서 예외가 발생한 메서드와 이를 호출한 메서드 모두에서 처리해줘야할 작업이 생길때 유용하다.

 

간단히 이해해보자면 2중 for문이 가능하듯

예외처리도 중첩되어 사용이 가능하여 호출한 부모쪽에게도 예외가 발생했음을 알릴 수 있다는 것이다.

코드를 보며 이해해보자.

public class RethrowExample {
    public static void main(String[] args) {
        try {
            // 예외를 다시 던지는 메서드 호출
            processFile("nonexistent-file.txt");
        } catch (Exception e) {
            System.err.println("예외가 발생했습니다: " + e.getMessage());
        }
    }

    // 예외를 다시 던지는 메서드
    public static void processFile(String fileName) throws Exception {
        try {
            // 파일을 처리하는 로직
            // 여기에서는 간단히 FileNotFoundException을 발생시킴
            throw new FileNotFoundException("파일을 찾을 수 없습니다: " + fileName);
        } catch (FileNotFoundException e) {
            // FileNotFoundException을 catch하고 다시 던짐
            throw e;
        }
    }
}