熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

c#中構建異常處理

2013-11-13 10:50:12  來源: .NET編程 
  異常是程序運行中發生的錯誤異常處理是程序設計的一部分在c#中異常處理是通過Exception基類進行的可以創建自己的異常類但這個類必須是繼承自Exception基類

  異常將導致不完善或者不需要的結果因此在程序設計中需要處理異常異常也可以是象IndexOutOfBounds這樣的錯誤這個錯誤表示程序試圖訪問數組中部存在的元素比如數組最大元素為當試圖訪問元素時就將會發生這樣的錯誤但這些都是內建的異常可以直接通過Exception基類處理如果發生的異常不是內建的那麼就需要我們自己見一個異常處理類當然這個類時繼承自Exception基類
 
  下面的程序定義了一個自己的異常類

using System;
public class MyException:Exception
{
public string s;
public MyException():base()
{
s=null;
}
public MyException(string message):base()
{
s=messageToString();
}
public MyException(string messageException myNew):base(messagemyNew)
{
s=messageToString();// Stores new exception message into class member s
}
public static void Test()
{
string strstringmessage;
bool flag=false;
stringmessage=null;
char ch= ;
int i=;
ConsoleWrite(Please enter some string (less than characters) );
str=ConsoleReadLine();
try{
ch=str[i];
while (flag==false)
{
if (ch==\r)
{
flag=true;
}
else{
ch=str[i];
i++;
}
}
}
catch(Exception e){
flag=true;
}

if (i>)
{
stringmessage=你的輸入不能超過個字 !;
throw new MyException(stringmessage);
}
}
public static void Main()
{
try
{
Test();
}
catch(MyException e)
{
ConsoleWriteLine(es);
}
}
}


  上面的代碼建立了一個新的繼承於Exception基類的異常類叫MyException這個類有三個過載構造函數采用三個構造函數的目的十分簡單為了能夠過載基類的構造函數基類中缺省的和已經實現的構造函數必須在繼承類中實現但是我們設計這個類的真正目的是當用戶輸入超過 個字就顯示一段錯誤提示信息提醒用戶輸入不能超過個字雖然這更像是數據驗證而不是一個真正的異常但卻是一個比較好的例子新的異常MyException被函數Test()拋出通過該方法信息你的輸入不能超過個字被main()的catch塊獲得


From:http://tw.wingwit.com/Article/program/net/201311/14604.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.