출처 :http://cafe.naver.com/javasolution/58
* Exception은 2가지 종류가 있다.
시스템 정의 Exception ( System Define Exception ) 과 사용자정의 Exception ( User Define Exception).
1. 다음과 같은 이름으로 사용자정의 Exception를 작성하시오. ( UserDefineException.java )
2. 다음 코드를 실행시키면 에러가 발생한다. UserDefineException으로 예외처리하시오.
public class ExceptionTest {
public static void main ( String [ ] args){
a();
}//
public static void a(){
b();
}//
public static void b(){
String name;
Systme.out.println( name.charAt( 0 ) );
}//
}//
1번정답:
public class UserDefineException extends Exception {
public UserDefineException( String mesg){
super( mesg );
}
}
사용자정의클래스를 만들때에는 구현내용은 정해진것이 없지만 반드시 Exception클래스를
상속받아야 한다. 일반적으로 문자열을 처리할수 있는 생성자를 만드는것이 보통이다.
또한 필요에 의해서 인스턴스변수 및 메소드도 추가할 수 있다.
2번정답:
public class ExceptionTest {
public static void main ( String [] args ){
try{
a();
}catch( UserDefineException u ){
System.out.println( u.getMessage() );
}
}//
public static void a() throws UserDefineException{
b();
}//
public static void b() throws UserDefineException{
try{
String name = null;
System.out.println( name.charAt(0) );
} catch( NullPointerException e){ // 실제로 catch한것은 NullPointerException 이지만 사용자정의클래스를 생성하여 처리.
throw new UserDefineException( "널포인터 발생");
}
}//
}//
어느 메소드에서나 예외처리를 할 수 있지만 main에서 처리하게 구현함.
이와 같은 예외처리 방법을 반드시 숙지할것