[Java 기능] 사용자 정의 예외 클래스

2022. 2. 15. 18:57·Java

사용자 정의 예외 클래스

  • 자바에서 제공되는 예외 클래스 이외에 프로그래머가 직접 생성해야 하는 예외가 있을 수 있음
  • 기존 예외 클래스 중 가장 유사한 예외 클래스에서 상속 받음
  • 기본적으로 Exception 클래스를 상속하여 만들 수 있음

 

예제 코드

패스워드 입력 시 오류 처리

  1. 비밀번호는 null이 될 수 없음
  2. 비밀번호는 문자로만 구성될 수 없음 (숫자 혹은 특수문자 포함)
  3. 비밀번호는 5자 이상이어야 함

 

PasswordException.java
package ch10;

public class PasswordException extends Exception {	// Exception을 상속받는 사용자 정의 예외 클래스

	public PasswordException(String message) {
		super(message);
	}
}

 

PasswordTest.java
package ch10;

public class PasswordTest {
	
	private String password;
	

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) throws PasswordException {
		
		if(password == null) {	// password가 null일 경우
			throw new PasswordException("비밀번호는 null 일 수 없습니다.");
		}
		else if(password.length() < 5) {	// password가 5자 미만일 경우
			throw new PasswordException("비밀번호는 5자 이상이어야 합니다.");
		}
		else if(password.matches("[a-zA-Z]+")) {	// password가 문자로만 이루어져 있을 경우
			throw new PasswordException("비밀번호에 숫자 또는 특수문자가 포함되어야 합니다.");
		}
		else {
			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 = "abcd";
		try {
			test.setPassword(password);
			System.out.println("오류 없음2");
		} catch (PasswordException e) {
			System.out.println(e.getMessage());
		}
		
		password = "abcdef";
		try {
			test.setPassword(password);
			System.out.println("오류 없음3");
		} catch (PasswordException e) {
			System.out.println(e.getMessage());
		}
		
		password = "abcde#";
		try {
			test.setPassword(password);
			System.out.println("오류 없음4");
		} catch (PasswordException e) {
			System.out.println(e.getMessage());
		}
		
	}

}

 

수행 결과
비밀번호는 null 일 수 없습니다.
비밀번호는 5자 이상이어야 합니다.
비밀번호에 숫자 또는 특수문자가 포함되어야 합니다.
오류 없음4

 

저작자표시 비영리 변경금지 (새창열림)

'Java' 카테고리의 다른 글

[Java 기능] 오류 로그 남기기 - java.util.logging.Logger 활용  (0) 2022.02.16
[Java 기능] 예외 처리와 미루기  (0) 2022.02.15
[Java 기능] 예외 처리의 개념과 필요성  (0) 2022.02.15
'Java' 카테고리의 다른 글
  • [Java 기능] I/O 스트림
  • [Java 기능] 오류 로그 남기기 - java.util.logging.Logger 활용
  • [Java 기능] 예외 처리와 미루기
  • [Java 기능] 예외 처리의 개념과 필요성
suaring
suaring
개발 공부 로그
  • suaring
    Sue's devlog
    suaring
  • 전체
    오늘
    어제
    • 분류 전체보기 (123)
      • Algorithm (2)
      • WEB (8)
      • Spring (26)
      • Java (83)
      • Kotlin (1)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
suaring
[Java 기능] 사용자 정의 예외 클래스
상단으로

티스토리툴바