国产探花免费观看_亚洲丰满少妇自慰呻吟_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塊獲得。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民丰县| 闽侯县| 外汇| 寿宁县| 蕉岭县| 临夏县| 措美县| 公安县| 自贡市| 华蓥市| 苏州市| 体育| 麻江县| 泽州县| 金门县| 安乡县| 南和县| 白河县| 柏乡县| 泉州市| 山阴县| 巨鹿县| 温宿县| 安龙县| 疏勒县| 揭阳市| 永城市| 襄垣县| 邛崃市| 禹城市| 望城县| 丰台区| 白水县| 新丰县| 朝阳区| 文水县| 建始县| 武城县| 明溪县| 西乌| 昌吉市|