国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

c#中構建異常處理

2024-07-21 02:17:38
字體:
來源:轉載
供稿:網友
    異常是程序運行中發生的錯誤,異常處理是程序設計的一部分。在c#中異常處理是通過exception基類進行的,可以創建自己的異常類,但這個類必須是繼承自exception基類。

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

   下面的程序定義了一個自己的異常類:

using system;
public class myexception:exception
{
public string s;
public myexception():base()
{
s=null;
}
public myexception(string message):base()
{
s=message.tostring();
}
public myexception(string message,exception mynew):base(message,mynew)
{
s=message.tostring();// stores new exception message into class member s
}
public static void test()
{
string str,stringmessage;
bool flag=false;
stringmessage=null;
char ch=' ';
int i=0;
console.write("please enter some string (less than 27 characters) - ");
str=console.readline();
try{
ch=str[i];
while (flag==false)
{
if (ch=='/r')
{
flag=true;
}
else{
ch=str[i];
i++;
}
}
}
catch(exception e){
flag=true;
}

if (i>27)
{
stringmessage="你的輸入不能超過27個字 !";
throw new myexception(stringmessage);
}
}
public static void main()
{
try
{
test();
}
catch(myexception e)
{
console.writeline(e.s);
}
}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通道| 邯郸市| 万载县| 西丰县| 金门县| 青岛市| 日土县| 鱼台县| 马边| 滦平县| 宁津县| 孙吴县| 手游| 桂阳县| 南昌县| 甘南县| 富蕴县| 南乐县| 繁峙县| 高唐县| 马龙县| 连山| 涞源县| 泰和县| 宜昌市| 阳东县| 伊通| 彩票| 突泉县| 五指山市| 张家界市| 沛县| 财经| 宜州市| 社会| 绥芬河市| 香港| 黄浦区| 云南省| 志丹县| 客服|