[JAVA] throw와 throws

throw

throw 문은 개발자가 직접 예외를 발생시키는 문법입니다. 프로그램의 특정 상황에서 개발자가 예외를 명시적으로 발생시키는데 사용됩니다.

 

throw 활용

  • 예외 정의 : 특정 상황에 대응하기 위해 개발자가 직접 예외 클래스를 정의하고 이를 활용할 수 있습니다.
  • 데이터 유효성 검증 : 데이터 유효성 검증이 실패한 경우 throw 문을 사용하여 예외를 발생시키고, 이를 호출하는 곳에서 적절한 예외 처리를 수행할 수 있습니다.

throws

메서드 선언부에 throws를 사용하여 해당 메서드가 처리하지 않고 상위 호출자로 예외를 전달하는 방식을 지원합니다.

 

throws 활용

  • 예외 처리의 분리 : 메서드 내부에서 발생한 예외를 상위 호출자에게 전달함으로써, 호출한 곳에서 예외 처리를 수행해야 합니다.
  • 다중 예외 전달 : throws 절에는 여러 개의 예외를 동시에 나열할 수 있습니다. 다양한 예외를 호출자에게 알리는 역할을 합니다.

throw와 throws 예제

// InvalidAgeException 예외 클래스 정의
class InvalidAgeException extends Exception {
    public InvalidAgeException(String msg) {
		super(msg);
	}
}

public class Main {
	public static void main(String[] args) {
		// throws로 선언된 메서드 에러 처리
        try {
			checkAge(15);
		} catch (InvalidAgeException e) {
			e.printStackTrace();
		}
	}
	
    // 나이 검증 후 유효하지 않으면 throw로 예외 발생
	static void checkAge(int age) throws InvalidAgeException {
		if(age < 19) throw new InvalidAgeException("미성년자");
	}
}