[Java] 사용자 정의 예외 클래스
사용자 정의 예외 클래스
-
프로그래밍을 하다 보면 자바에서 제공하는 예외 클래스외에 직접 만들어야하는 예외들이 존재할 것이다. 이러한 경우 프로그래머들은 예외 클래스를 직접 만들어 사용한다.
-
사용자 정의 예외 클래스는 기존 예외 클래스중에서 가장 유사한 예외 클래스를 상속받아 만든다.
-
기본적으로는 Exception 클래스를 상속해서 만들 수 있다.
👨🏻💻 Example Code
PasswordException.java
package ch10;
public class PasswordException extends Exception{
// exception을 상속
public PasswordException(String message) {
super(message);
}
}
PasswordTest.java
public class PasswordTest {
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) throws PasswordException {
// 이와 같이 exception을 만들고 상황에 따른 exception을 발생시킬 수 있다.
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();
//setPassword에서 Exception을 throws했기에 실행 코드에서 try-catch를 통해 예외 처리를 해야한다.
// password가 null인 것을 test
String password = null;
try {
test.setPassword(password);
System.out.println("오류없음1");
} catch (PasswordException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
// 문자열이 5개 미만이고 특수문자가 없는 것 테스트
password = "abc";
try {
test.setPassword(password);
System.out.println("오류없음2");
} catch (PasswordException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
// 문자열이 5개 이상이지만 특수문자가 없는 것 테스트
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());
}
}
}
Result
비밀번호는 null일 수 없습니다.
비밀번호는 5자 이상이어야 합니다.
비밀번호는 숫자나 특수문자를 포함해야 합니다.
오류없음4
Reference
Author And Source
이 문제에 관하여([Java] 사용자 정의 예외 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seongwon97/Java-사용자-정의-예외-클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)