오답노트

[Java] 사용자 정의 예외 처리 본문

Java

[Java] 사용자 정의 예외 처리

권멋져 2023. 7. 10. 15:37

사용자 정의 예외 처리

Exception 클래스에서 상속을 받아 throws로 받거나 catch의 인자로 사용할 수 있다.

 

public class PassWordTest {
	private String password;
	
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) throws PassWordException {
		if(password == null) {
			throw new PassWordException("비밀번호는 null일 수 없습니다.");
		}
		else if(password.length() < 5) {
			throw new PassWordException("비밀번호는 5자 이상이어야합니다.");
		}
		else if(password.matches("[a-zA-Z]+")) {
			throw new PassWordException("비밀번호는 숫자나 특수문자를 포함해야합니다.");
		}
		
		this.password = password;
	}

	public static void main(String[] args) {
		PassWordTest test = new PassWordTest();
		String password = null;
		
		try {
			test.setPassword(password);
			System.out.println("오류없음1");
		} catch (PassWordException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
		}
		
		password = "abc";
		
		try {
			test.setPassword(password);
			System.out.println("오류없음2");
		} catch (PassWordException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
		}
		
		password = "abcde";
		
		try {
			test.setPassword(password);
			System.out.println("오류없음3");
		} catch (PassWordException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
		}
		
		password = "abcde1#";
		
		try {
			test.setPassword(password);
			System.out.println("오류없음4");
		} catch (PassWordException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
		}
		
	}

}
// PassWordTest.java

 

public class PassWordException extends Exception{
	
	public PassWordException(String message) {
		super(message);
	}

}
// PassWordException.java

'Java' 카테고리의 다른 글

[Java] 직렬화  (0) 2023.07.11
[Java] IOStream  (0) 2023.07.10
[Java] 예외 처리  (0) 2023.07.10
[Java] 스트림  (0) 2023.07.10
[Java] 람다식  (0) 2023.07.10