Java自定義異常
Java異常機制可以保證程序更安全和更健壯。雖說Java類庫已經提供很多可以直接處理異常的類,但是有時候為了更加精準地捕獲和處理異常以呈現更好的用戶體驗,需要開發者自定義異常。本文就是探討如何自定義異常以及使用自定義的異常。
在進行程序開發的過程中,自定義異常遵循以下四個步驟:
1)首先創建自定義異常類,語法格式:自定義異常類名 extends Exception。
2)在方法中通過關鍵字throw拋出異常對象。
3)若是在當前拋出異常的方法中處理異常,可以用try-catch語句捕獲并處理;若不是,在方法的聲明處通過關鍵字throws指明要拋出給方法調用的異常。
4)在出現異常方法的調用中捕獲并處理異常。
接下來,通過一個簡單的程序來說明自定義異常和使用自定義異常。
首先創建自定義異常類,代碼如下:
/** *<p>Titlt:自定義異常類NumeratorIsZeroException</p> *<p>Description:分子為零的異常</p> *<p>Copyright:copyright(c) 2012</p> *<p>Filename:NumeratorIsZeroException.java</p> *@authorWang Luqing *@version1.0 */ class NumeratorIsZeroException extends Exception { public NumeratorIsZeroException(String msg) { super(msg); } } |
接下來,使用自定義異常類,代碼如下:
/** *<p>Titlt:設計類Number/p> *<p>Description:類中有除法計算方法</p> *<p>Copyright:copyright(c) 2012</p> *<p>Filename:Number.java</p> *@authorWang Luqing *@version1.0 */ public class Number { public int divition(int iNum1,int iNum2) throws NumeratorIsZeroException { if(0 == iNum2) { throw new NumeratorIsZeroException("分子不能為零。"); } return (iNum1/iNum2); } } |
/** *<p>Titlt:設計類Test</p> *<p>Description:測試自定義的異常類</p> *<p>Copyright:copyright(c) 2012</p> *<p>Filename:Test.java</p> *@authorWang Luqing *@version1.0 */ public class Test { public static void main(String[] args) { Number num = new Number(); try { System.out.println("商:" + num.divition(12,0)); } catch(NumeratorIsZeroException e) { System.out.println(e.getMessage()); e.printStackTrace(); } catch(Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } } } |
運行結果如下所示:
分子不能為零。
NumeratorIsZeroException:分子不能為零。
at Number.divition(Number.java:15)
at Test.main(Test.java:17)
總結:
1)根據上述代碼關鍵點歸納,自定義異常類,標識可能拋出的異常,捕獲和處理異常。
2)getMessage():輸出異常的信息;printStackTrace():輸出導致異常的詳細信息。
3)設計和利用好自定義異常,使得異常的處理更靈活和精準。