PasswordException 클래스
package day12;
public class PasswordException extends IllegalArgumentException {
public PasswordException(String message) {
super(message);
//IllegalArgumentException (String s)
//지정된 상세 메세지를 가지는 IllegalArgumentException을 구축합니다.
}
}
사용자 지정 예외 클래스
package day12;
import java.util.Scanner;
public class 사용자정의Exception {
public static void main(String() args) {
PasswordTest pt = new PasswordTest(); //PasswordTest 객체 생성
Scanner sc = new Scanner(System.in);
System.out.println("1. 비밀번호는 null일 수 없다.
\n2. 비밀번호의 길이는 5자이상\n3. 비밀번호는 문자로만 이루어지면 안됨. (문자+숫자나 특수자문자 포함.) ");
System.out.println("비밀번호를 입력하세요.");
String password = sc.next();
try {
pt.setPassword(password); //PasswordTest의 setPassword 메서드 사용
System.out.println(pt.getPassword());
}catch (PasswordException e) {
System.out.println(e.getMessage());
}
}
}
class PasswordTest{
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) throws PasswordException { //throws PasswordException 예외를 던진다.
(메소드 사용자가 처리)
if(password == null) {
throw new PasswordException("비밀번호는 null일수 없습니다.
"); //throw로 예외를 발생시킨다.
}else if (password.length() < 5) {
throw new PasswordException("비밀번호는 5자 이상이여야 합니다.
");
}else if(password.matches("(a-zA-Z)+")) {
throw new PasswordException("비밀번호는 숫자나 특수문자를 포함해야 합니다.
");
}
this.password = password;
}
}