본문 바로가기
Work & Study/JAVA (& 혼공자Java)

자바(Java) - 예외 종류에 따른 처리 코드

by a.k.a DUKI 2020. 12. 7.
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
반응형