1. 程式人生 > >Java第二次作業第五題

Java第二次作業第五題

自定義異常類,非法年齡類,並在person3類中使用此類,根據情況丟擲異常,並進行處理。

package naizi;

class IllegalAgeException extends Exception{    //無效年齡異常類
public IllegalAgeException(String s){
    super(s);
}
public IllegalAgeException(){
    this("");
}
}

public class Person3{
protected String name; //姓名
protected int age;   //年齡
public Person3(String name,int age)throws IllegalAgeException{ //丟擲異常的方法,請準確寫出丟擲的異常類
    this.set(name);
    this.set(age);  
} 
public void set(String name){
    if (name==null || name=="")
        this.name = "姓名未知";
    else
        this.name = name;
}
public void set(int age) throws IllegalAgeException {   //丟擲異常的方法,請準確寫出丟擲的異常類
    if (age>=0 && age<100)
        this.age = age;
    else
        throw new IllegalAgeException(Integer.toString(age));   //丟擲IllegalAgeException的類
}
public void set(String name, int age) throws IllegalAgeException {   //丟擲異常的方法,請準確寫出丟擲的異常類
    this.set(name);
    this.set(age);
}
public String toString() {
    return this.name+","+this.age+"歲";  
}
public void print(){
    System.out.println(this.toString());
}
public static void main(String args[]){
    Person3 p1=null;
    try{        //寫出異常處理結構語句
        p1 = new Person3("李小明",20);    //呼叫宣告丟擲異常的方法,必須寫在try語句中,否則編譯不通過
        p1.set(121);    
    }catch (IllegalAgeException e){     //捕獲自定義異常類,而非Exception類
        e.printStackTrace();            //顯示異常棧跟蹤資訊 
    }finally {
        p1.print();     
    }   
}
}  

執行結果如圖: