본문 바로가기
프로그래밍 언어/JAVA(자바) 응용

59.사용자 정의 예외클래스

by lroot 2022. 6. 3.
728x90
반응형

사용자 정의 예외 클래스 구현하기

- 자바에서 제공되는 예외 클래스외에 프로그래머가 직접 만들어야 하는 예외가 있을 수 있음

- 기존 예외 클래스중 가장 유사한 예외 클래스에서 상속 받아 사용자 정의 예외 클래스를 만든다.

- 기본적으로 Exception 클래스를 상속해서 만들 수 있음

 

패스워드에 대한 예외처리하기

- 패스워드를 입력할 때 다음과 같은 경우 오류처리를 합니다.

비밀번호는 null일 수 없습니다.

비밀번호의 길이는 5이상입니다.

비밀번호는 문자로만 이루어져서는 안됩니다.(하나이상의 숫자나 특수문자를 포함)

 

- PassWordTest.java

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) {
System.out.println(e.getMessage());
}

password = "abc ";
try {
test.setPassword(password);
System.out.println("오류없음2");
} catch (PassWordException e) {
System.out.println(e.getMessage());
}

password = "abcde";
try {
test.setPassword(password);
System.out.println("오류없음3");
} catch (PassWordException e) {
System.out.println(e.getMessage());
}

password = "abcde1#";
try {
test.setPassword(password);
System.out.println("오류없음4");
} catch (PassWordException e) {
System.out.println(e.getMessage());
}

}


}

댓글