1、自定義異常類 1.1 為什麼要自定義異常類 (1)沒有具體系統異常相對應 (2)不希望在Catch塊中處理 (3)希望能明確標誌錯誤種類的異常 1.2 自定義異常類定義步驟 繼承自System.ApplicationException類,並使用Exception作為尾碼名。 1.3 自定義異常的 ...
1、自定義異常類
1.1 為什麼要自定義異常類
(1)沒有具體系統異常相對應
(2)不希望在Catch塊中處理
(3)希望能明確標誌錯誤種類的異常
1.2 自定義異常類定義步驟
繼承自System.ApplicationException類,並使用Exception作為尾碼名。
1.3 自定義異常的準則
自定義異常:
class MyException : ApplicationException { public string error; private Exception innerException; public MyException() { } public MyException(string msg) :base(msg) { this.error = msg; } public MyException(string msg, Exception innerException):base(msg,innerException) { this.innerException = innerException; error = msg; } public string GetError() { return error; } }
測試:
class Program { static void Main(string[] args) { try { // 無參構造對象 //throw new MyException(); //throw new MyException("我的錯誤哦"); throw new MyException("我的錯誤",new Exception("這是Exception的錯誤")); } catch (MyException e) { //Console.WriteLine(e.GetError()); Console.WriteLine(e.InnerException.Message); } //*/ /* //因為Exception是MyException父類,所以如果這裡是Exception也能捕獲到MyException的錯誤 //前提是MyException必須初始化父類Exception構造函數,即 public MyException(string msg) :base(msg) catch (Exception e) { Console.WriteLine(e.Message); } //*/ Console.ReadKey(); } }