이번 시간에는 자바에서 제공해주는 예외 클래스외에
사용자가 직접 정의할 수 있는 예외 클래스의 사용 방법을 올려봅니다.
사용자 정의 예외 클래스를 만들기 위해서는..
- 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(">>>사이트 이용<<<"); }
위의 소스 코드를 실행하면 다음과 같은 결과가 나옵니다.
댓글 없음:
댓글 쓰기