C#中自定義異常

 
在寫方法時,是否遇見數據輸入的錯誤呢.如果字符串格式不能轉換成整型的什麼.不過處理這些錯誤的異常,.Net已經都幫我們寫好了.
但是如果一個字符串輸入你想判斷他是不是二進制數..這種異常你會怎麼處理呢,,返回一個錯誤標識嗎?如果你寫的函數是二進制轉換成十進制
,返回的值是整型.這個錯誤返回值如果標識呢...哈哈,,,你可能會說出幾種或幾十種解決方法.....

下面就是我通過異常來解決的一個方法哦...
如果你想看我的處理方法,,或想了解下如何自定義一個自己異常提示..那就繼續往下吧...

創建自定義異常主要可以兩個類中派生而來:
1.ApplicationException 類
2.System.Exception類
上面兩個類具體要怎麼用,,還得待考察哦..
 
 
今天我是用System.Exception這個類來派生我的自己類哦.
代碼:
1. 創建自定義異常類
 public class UserDefinedException : System.Exception // 看到沒繼承System.Exception類
 {
  private string message;// 錯誤消息
  // 下面是構造函數..你可自己多寫幾個..把他變成多態可能會更靈活哦.
  public UserDefinedException(string Message) : base() // 這邊是重寫構造函數
  {
   message = Message;
   //
   // TODO: 在此處添加構造函數邏輯
   //
  }
  /// <summary>
  /// 重寫異常錯誤信息
  /// </summary>
  /// <returns></returns>
  public override string ToString() // 重寫ToString方法,請看下面override說明
  {
   return message;
  }
 }
 
override說明:(MSDN裏寫的哦)
使用 override 修飾符來修改方法、屬性、索引器或事件。重寫方法提供從基類繼承的成員的新實現。由重寫聲明重寫的方法稱爲重寫基方法
。重寫基方法必須與重寫方法具有相同的簽名。不能重寫非虛方法或靜態方法。重寫基方法必須是虛擬的、抽象的或重寫的。重寫聲明不能更
改虛方法的可訪問性。重寫方法和虛方法必須具有相同的訪問級修飾符。不能使用下列修飾符修改重寫方法:new   static    virtual  
abstract重寫屬性聲明必須指定與繼承屬性完全相同的訪問修飾符、類型和名稱,並且重寫屬性必須是虛擬的、抽象的或重寫的。
 
2. 自定義異常的使用:
  public static int BinarySystemToAlgorism(string BinarySystemValue)
  {
   BinarySystemValue = BinarySystemValue.Trim();
   int Algorism = 0;
   int len = BinarySystemValue.Length;
   int temp;
   int tempPow = 0;
   int col = 0;
   for(int index = len - 1;index > -1;index --)
   {
     temp = Convert.ToInt32(BinarySystemValue[col].ToString());
     if(!(temp == 0 || temp == 1))
     {
      // 看到沒在這邊哦,由於我的寫在不同一個項目所以帶上的命名空間哦.
      throw new FarSeekClass.UserDefinedException("出錯了,二進制輸入出錯!");
     }
     col += 1;
     tempPow = Pow(2,index);
     Algorism += temp * tempPow;
    
   }
   return Algorism;
  }
 
3.  外面接收異常消息:
   try
   {
    this.TextBox1.Text = FarSeekClass.DataSwitch.BinarySystemToAlgorism(TH.Text).ToString();
   }
   catch(FarSeekClass.UserDefinedException ex) // 注意這邊,catch後面異常類是寫了我們自己定義的類名
   {
    Response.Write(ex.ToString());
   }
 
以上就是我今晚最的價值的.
嘻....多給我提意見哦..記得給留言,,路過也留個影哦..
 
發佈了16 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章