본문 바로가기

etc.

[Java code] 이것이 자바다 예외처리 확인문제 7번 - 예외 떠넘기기

반응형

1. NotExistIdException.java

public class NotExistIdException extends Exception {

    // 기본 생성자
    public NotExistIdException() {}
    
    public NotExistIdException(String message) {
        
        // 부모 클래스인 Exception에 message를 인자로 넘김
        // 후에 catch문에서 e.getMessage() 함수로 message 출력함
        super(message);
    }
}

2. WrongPasswordException.java

public class WrongPasswordException extends Exception {
    public WrongPasswordException() {}
    public WrongPasswordException(String message) {
        super(message);
    }
}

3.LoginExample.java

public calss LoginExample {
    public static void main(string[] args) {
        try {
            login("white", "12345");
        } catch(Exception e) {
            
            // 받아온 message(String)으로 예외 정보 메세지를 출력함
            System.out.println(e.getMessage());
        }
        
        try {
            login("blue", "54321");
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
    
    // 생성되는 예외를 throws로 떠넘기기
    // 혹은 try-catch문을 써야 함
    public static void login(String id, String password) throws NotExistIdException, WrongPasswordException {
        if(!id.equals("blue")) {
        
            // throw로 예외 발생시키기
            throw new NotExistIdException("아이디가 존재하지 않습니다.");
        }
        
        if(!password.equals("12345")) {
            throw new WrongPasswordException("패스워드가 틀립니다.");
        }
    }
}

 

+

Exception 클래스에는

 

getMessage()

: 오류에 대한 기본적인 내용을 출력

 

toString()

: getMessage()보다는 더 자세한 예외 정보를 제공

 

printStackTrace()

: 리턴값이 없고, 내부적으로 예외 결과를 화면에 출력한다 (-> e.printStackTrace(); 로 호출)

  가장 자세한 예외 정보를 제공한다

 

등의 오류 메세지를 화면에 출력하는 함수가 있다

반응형