728x90
반응형
예외 종류에 따른 처리 코드
다중 catch
발생하는 예외별로 예외 처리 코드를 다르게 하는 다중 catch 블록을 가질 수 있다.
여러개의 catch블록이 있다 할지라도 단 하나의 catch블록만 실행된다.
그 이유는 try 블록에서 동시 다발적으로 예외가 발생하지 않고, 하나의 예외가 발생하면 즉시 실행을 멈추고 catch 블록으로 이동 하기 때문이다.
예시1) TryCatchFinallyExCatchByExceptionKindEx
10~11라인에서 ArrayIndexOutOfBoundsException이 발생하면, 18라인이 실행되고,
13~14라인에서 NumberFormatException이 발생하면 20라인이 실행 된다.
22라인은 예외 발생 여부와 상관 없이 실행 된다.
예외 떠넘기기
thorows 키워드
-
메소드에서 처리하지 않는 예외를 호출한 곳으로 넘기는 역할이다.
-
메소드를 호출한 곳에서 다양한 방식으로 처리할 수 있도록 한다.
-
throws 키워드 뒤에는 떠넘길 예외 클래스를 쉼표로 구분하여 나열 한다.
예시2) ThrowsEx
public class ThrowsEx {
public static void main(String[] args) {
try {
findClass();
} catch (ClassNotFoundException e) {
System.out.println("클래스가 존재하지 않는다.");
}
}
public static void findClass() throws ClassNotFoundException {
// 클래스를 호출한 곳에 예외를 떠넘김
Class clazz = Class.forName("java.lang.Strin2");
}
}
main 메소드에 thorws를 하게되면, 아래와 같이 JVM이 최종적으로 처리를하여 콘솔에 처리내용을 출력한다.
※용어 정리
-
다중 catch 블록: 예외 별로 예외 처리 방식을 다르게 할 경우 여러 개의 catch블록을 가질 수 있다.
-
trhows 키워드: 메소드에서 처리하지 않은 예외를 호출한 곳으로 떠넘기는 역할 이다.
본 내용은 #혼자공부하는자바 책을 참고해 공부하려 작성했습니다.
728x90
반응형
'Work & Study > JAVA (& 혼공자Java)' 카테고리의 다른 글
자바(Java) - 스레드2 (toolkit.beep(); 비프음 실행) (0) | 2020.12.15 |
---|---|
자바(Java) -스레드1 (2) | 2020.12.10 |
자바(Java) - 예외 처리 (0) | 2020.12.07 |
자바(Java) - 예외 클래스 (0) | 2020.12.02 |
자바(Java) - 익명 객체2 (익명 구현 객체 생성) (0) | 2020.11.24 |