한 메서드에서 발생할 수 있는 예외가 여럿인 경우
몇개는 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;
}
}
}
'JAVA' 카테고리의 다른 글
클래스에서 객체를 복제하다, clone() (0) | 2023.12.08 |
---|---|
예외처리: chained exception 예외와 예외를 연결하다 (0) | 2023.12.07 |
예외처리: extends Exception 사용자정의 예외 만들기 (0) | 2023.12.07 |
예외처리: try-catch-resources문, 사용한뒤 자동으로 닫아준다. (0) | 2023.12.07 |
throws Exception 메서드에 예외선언하기, try-catch문의 다른 표현방법 (0) | 2023.12.07 |