자바(Java) - 사용자 정의 예외 클래스 예제

안녕하세요

이번 시간에는 자바에서 제공해주는 예외 클래스외에

사용자가 직접 정의할 수 있는 예외 클래스의 사용 방법을 올려봅니다.

사용자 정의 예외 클래스를 만들기 위해서는..

- Exception을 상속받는 클래스를 만들어야 합니다.

- 생성자를 구성하고, 생성자 안에서 super(예외 메시지); 를 호출해야 합니다.
-->여기에 들어간 예외 메시지가 getMessage()를 호출할 때 반환되는 메시지가 됩니다.

- 사용자 예외 클래스 객체를 생성해서 throw 라는 키워드로 던져주고, 반드시 메소드 헤더부분에 해당 예외를 throws 해줘야 합니다.


public class PongSite {
 public static void login(String name, String pwd) throws NotSupportedNameException{
  System.out.println("***Login Page***");
  char lastName=name.charAt(0); // 첫번째 글자를 lastName 변수에 저장
  if(lastName=='퐁'){
   System.out.println(name+"님 환영합니다.");
  }else if(lastName=='콩'){
   //사용자 정의 예외 발생
   throw new NotSupportedNameException("콩씨는 절대로 입장 불가");
   /* throw new 예외();
    * throw와 throws는 세트로 함께 사용하자.
    * */
  }else{
   //기타 성씨인 경우
   throw new NotSupportedNameException("기타 성씨분들은 이용에 제한이 있어요");
  }
 }
 public static void main(String[] args) {
 //명령줄 인수로 이름, 비번을 받자.
 if(args.length!=2){
  System.out.println("명령줄 인수 2개를 입력하세요[이름, 비밀번호]");
  return;
 }
 
 String name=args[0];
 String pwd=args[1];
 try{
  login(name,pwd);
 }catch(NotSupportedNameException e){
  String msg=e.getMessage; // 예외 메시지를 문자열로 반환한다.
  System.out.println(msg);
  //스택기록을 출력하여 예외가 발생된 지점을 보여줌(디버깅용으로 사용)
  e.printStackTrace();
  return;
 }
 System.out.println(">>>사이트 이용<<<");
}


위의 소스 코드를 실행하면 다음과 같은 결과가 나옵니다.


댓글 없음:

댓글 쓰기