본문 바로가기
Backend/Java

[Java] throws와 throw의 차이

by sukii 2024. 2. 23.
반응형

throws문은 메소드 시그니처에서 예외를 선언하여 메소드를 호출하는 쪽으로 예외를 전달하는 역할

throw문은 메소드 내에서 예외를 직접 발생시키는 역할을 합니다.

 

코드예시👩‍💻

//생략
public void addUserinfo(UserinfoDTO userinfo) throws SQLException, ExistsUserinfoException {
	if(UserinfoModelTwoDAO.getDAO().selectUserinfo(userinfo.getUserid())!=null) {
		//사용자 예외 클래스로 객체를 생성하여 throw 키워드로 인위적 예외 발생
		throw new ExistsUserinfoException("이미 사용중인 아이디를 입력하였습니다.");
	}
	UserinfoModelTwoDAO.getDAO().insertUserinfo(userinfo);
}
//생략

 

위의 코드에서 addUserinfo 메소드에서는 addUserinfo 메소드를 호출하는 쪽(=모델 클래스)으로 예외를 전달하려고 하기 때문에 throws 문을 사용하고, 메소드 내에서 예외가 발생했을 때 직접 예외를 던지기 위해 throw 문을 사용하고 있습니다.

 

반응형