Java第二次作業第五題
阿新 • • 發佈:2018-11-11
自定義異常類,非法年齡類,並在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(); } } }
執行結果如圖: