Java

Java문법) 예외처리 -4 (throw와 throws)

sejin2 2023. 11. 1. 16:28

1. throw

  • 예외가 발생하지 않았음에도 예외를 명시적으로 발생 시킴 ( 강제로 예외 발생시킴 )
  • 예외가 발생되었을 때 제대로 처리되는지 확인하기 위해 사용
	public static void main(String[] args) throws Exception { 
		try {
			Exception e = new Exception("고의로 발생시킴");
			throw e;
		}catch ( Exception e ) {
			System.out.println(e);
		}
	}

출력결과 )

[출력방법]

(1) printStackTrace ( ) : 예외 발생 시 호출 스택 ( call stack ) 에 있었던 메서드의 정보와 예외 메세지를 화면에 출력

(2) getMessage ( ) : 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻어옴

(3) println ( ) 

public static void main(String[] args) throws Exception { 
		try { 
			int num = 3/0;
		}catch ( Exception e ) {
			e.printStackTrace();
			e.getMessage();
			System.out.println("예외발생");
		}
	} 
}

출력결과 )

2. throws

  • 메서드 선언부 끝에 작성되어 메서드에서 처리하지 않은 예외를 호출한 곳으로 넘기는 역할
  •  throws 키워드 뒤에는 떠넘길 예외 클래스를 쉼표로 구분하여 나열
public class Throws11 {
	// throws 는 예외 떠넘기기
	public static void main(String[] args) {
		try {
			 change( );
		} catch (ClassNotFoundException e) {
			System.out.println("클래스가 없음");
		} 
	}
	public static void change() throws ClassNotFoundException { 
		Class class01 = Class.forName("java.lang.String1");
	} 
}

출력결과 )