您好,登錄后才能下訂單哦!
這篇文章主要講解了“C#異常怎么處理”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#異常怎么處理”吧!
異常是程序運行中發(fā)生的錯誤,C#異常處理是程序設(shè)計的一部分。在C#異常處理是通過Exception基類進行的,可以創(chuàng)建自己的異常類,但這個類必須是繼承自Exception基類。
異常將導(dǎo)致不完善或者不需要的結(jié)果,因此在程序設(shè)計中需要處理異常。異常也可以是象"IndexOutOfBounds"這樣的錯誤,這個錯誤表示程序試圖訪問數(shù)組中部存在的元素;比如數(shù)組***元素為100,當試圖訪問元素101時就將會發(fā)生這樣的錯誤。但這些都是內(nèi)建的異常,可以直接通過 Exception基類處理,如果發(fā)生的異常不是內(nèi)建的,那么就需要我們自己見一個C#異常處理類,當然這個類時繼承自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,這個類有三個過載構(gòu)造函數(shù),采用三個構(gòu)造函數(shù)的目的十分簡單:為了能夠過載基類的構(gòu)造函數(shù)?;愔腥笔〉暮鸵呀?jīng)實現(xiàn)的構(gòu)造函數(shù)必須在繼承類中實現(xiàn),但是我們設(shè)計這個類的真正目的是:當用戶輸入超過27 個字就顯示一段錯誤提示信息,提醒用戶輸入不能超過27個字。雖然這更像是數(shù)據(jù)驗證而不是一個真正的異常但卻是一個比較好的例子,新的異常 MyException被函數(shù)Test()拋出,通過該方法信息"你的輸入不能超過27個字"被main()的catch塊獲得。
感謝各位的閱讀,以上就是“C#異常怎么處理”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C#異常怎么處理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。