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

2022. 2. 15. 18:57·Java & Kotlin
목차
  1. 사용자 정의 예외 클래스
  2. 예제 코드

사용자 정의 예외 클래스

  • 자바에서 제공되는 예외 클래스 이외에 프로그래머가 직접 생성해야 하는 예외가 있을 수 있음
  • 기존 예외 클래스 중 가장 유사한 예외 클래스에서 상속 받음
  • 기본적으로 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 & Kotlin' 카테고리의 다른 글

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

  • 최근 댓글

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.