반응형
사용자 정의 예외 클래스 구현
- 자바에서 제공되는 예외 클래스외에 프로그래머가 직접 만들어야 하는 예외가 있을 수 있다
- 기존 예외 클래스중 가장 유사한 예외 클래스에서 상속 받아 사용자 정의 예외 클래스를 만든다.
- 기본적으로 Exception 클래스를 상속해서 만들 수 있음
패스워드에 대한 예외 처리 하기
- 비밀번호는 null일 수 없다
- 비밀번호의 길이는 5이상이다
- 비밀번호는 문자로만 이루어져서는 안된다(하나이상의 숫자나 특수문자를 포함)
PassWordException
package ch57;
public class PassWordException extends Exception{
public PassWordException (String message) {
super(message);
}
}
PassWordTest
package ch57;
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
e.printStackTrace();
System.out.println(e.getMessage());
}
password = "abc";
try {
test.setPassword(password);
System.out.println("오류없음2");
} catch (PassWordException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
password = "abcde";
try {
test.setPassword(password);
System.out.println("오류없음3");
} catch (PassWordException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
password = "abcde1";
try {
test.setPassword(password);
System.out.println("오류없음4");
} catch (PassWordException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
반응형
'언어 > JAVA' 카테고리의 다른 글
자바의 입출력(I/O 스트림) 종류 설명 (0) | 2021.05.23 |
---|---|
오류의 로그 남기기 - java.util.logging.Logger (0) | 2021.05.23 |
예외 처리 방법(처리하기, 미루기) 2 (0) | 2021.05.23 |
예외 처리 방법(처리하기, 미루기) (0) | 2021.05.23 |
예외 처리 설명 (0) | 2021.05.22 |