異常的練習: 老師用電腦上課。開始思考上課中出現的問題。比如問題是 電腦藍屏。 電腦冒煙。要對問題進行描述,封裝成對象。可是當冒煙發生後,出現講課進度無法繼續。出現了講師的問題:課時計劃無法完成。 運行結果: NoPlanException: 上課無法繼續,因為電腦冒煙了 class Teacher ...
異常的練習:
老師用電腦上課。
開始思考上課中出現的問題。
比如問題是
電腦藍屏。
電腦冒煙。
要對問題進行描述,封裝成對象。
可是當冒煙發生後,出現講課進度無法繼續。
出現了講師的問題:課時計劃無法完成。
1 class Teacher 2 { 3 private Computer cmp; 4 public void shangKe()throws NoPlanException /*聲明異常*/ 5 { 6 cmp=new Computer(); 7 try 8 { 9 cmp.run(); 10 } 11 catch(LanPingException e) /*電腦捕獲處理藍屏的異常*/ 12 { 13 cmp.recst(); 14 } 15 catch(MaoYanException e) /*電腦捕獲處理電腦冒煙的異常*/ 16 { 17 throw new NoPlanException("上課無法繼續,因為"+e.getMessage()); /*電腦無法處理這個異常,繼續把這個異常拋給老師來處理*/ 18 } 19 20 System.out.println("老師上課"); /*沒有異常,老師就正常上課*/ 21 } 22 } 23 class LanPingException extends Exception /*自定義藍屏異常*/ 24 { 25 LanPingException(String m) 26 { 27 super(m); 28 } 29 } 30 31 class MaoYanException extends Exception /*自定義電腦冒煙異常*/ 32 { 33 MaoYanException(String m) 34 { 35 super(m); 36 } 37 } 38 class NoPlanException extends Exception /*自定義老師處理異常*/ 39 { 40 NoPlanException(String m) 41 { 42 super(m); 43 } 44 } 45 46 class Computer 47 { 48 private int state=3; /*不同的異常狀態選擇*/ 49 50 public void run()throws LanPingException,MaoYanException 51 { 52 if(state==2) 53 { 54 throw new LanPingException("電腦藍屏了"); /*符合條件就拋出異常對象*/ 55 } 56 if(state==3) 57 { 58 throw new MaoYanException("電腦冒煙了"); 59 } 60 System.out.println("電腦運行"); 61 } 62 63 64 public void recst() 65 { 66 System.out.println("電腦重啟"); 67 } 68 } 69 70 class ExceptionText 71 { 72 public static void main(String args[]) 73 { 74 Teacher t=new Teacher(); 75 try 76 { 77 t.shangKe(); 78 } 79 catch(NoPlanException e) /*老師捕獲處理電腦冒煙異常*/ 80 { 81 System.out.println(e.toString()); 82 } 83 } 84 }
運行結果:
NoPlanException: 上課無法繼續,因為電腦冒煙了