在寫方法時,是否遇見數據輸入的錯誤呢.如果字符串格式不能轉換成整型的什麼.不過處理這些錯誤的異常,.Net已經都幫我們寫好了.
但是如果一個字符串輸入你想判斷他是不是二進制數..這種異常你會怎麼處理呢,,返回一個錯誤標識嗎?如果你寫的函數是二進制轉換成十進制
,返回的值是整型.這個錯誤返回值如果標識呢...哈哈,,,你可能會說出幾種或幾十種解決方法.....
下面就是我通過異常來解決的一個方法哦...
如果你想看我的處理方法,,或想了解下如何自定義一個自己異常提示..那就繼續往下吧...
創建自定義異常主要可以兩個類中派生而來:
1.ApplicationException 類
2.System.Exception類
2.System.Exception類
上面兩個類具體要怎麼用,,還得待考察哦..
今天我是用System.Exception這個類來派生我的自己類哦.
代碼:
1. 創建自定義異常類
public class UserDefinedException : System.Exception // 看到沒繼承System.Exception類
{
private string message;// 錯誤消息
代碼:
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;
}
}
public UserDefinedException(string Message) : base() // 這邊是重寫構造函數
{
message = Message;
//
// TODO: 在此處添加構造函數邏輯
//
}
/// <summary>
/// 重寫異常錯誤信息
/// </summary>
/// <returns></returns>
public override string ToString() // 重寫ToString方法,請看下面override說明
{
return message;
}
}
override說明:(MSDN裏寫的哦)
使用 override 修飾符來修改方法、屬性、索引器或事件。重寫方法提供從基類繼承的成員的新實現。由重寫聲明重寫的方法稱爲重寫基方法
使用 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;
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;
}
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());
}
try
{
this.TextBox1.Text = FarSeekClass.DataSwitch.BinarySystemToAlgorism(TH.Text).ToString();
}
catch(FarSeekClass.UserDefinedException ex) // 注意這邊,catch後面異常類是寫了我們自己定義的類名
{
Response.Write(ex.ToString());
}
以上就是我今晚最的價值的.
嘻....多給我提意見哦..記得給留言,,路過也留個影哦..
嘻....多給我提意見哦..記得給留言,,路過也留個影哦..