C#異常處理詳細剖析
學習C#語言時,經(jīng)常會遇到C#異常問題,這里將介紹C#異常處理問題的解決方法。
異常是程序運行中發(fā)生的錯誤,C#異常處理是程序設計的一部分。在C#異常處理是通過Exception基類進行的,可以創(chuàng)建自己的異常類,但這個類必須是繼承自Exception基類。
異常將導致不完善或者不需要的結(jié)果,因此在程序設計中需要處理異常。異常也可以是象"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),但是我們設計這個類的真正目的是:當用戶輸入超過27 個字就顯示一段錯誤提示信息,提醒用戶輸入不能超過27個字。雖然這更像是數(shù)據(jù)驗證而不是一個真正的異常但卻是一個比較好的例子,新的異常 MyException被函數(shù)Test()拋出,通過該方法信息"你的輸入不能超過27個字"被main()的catch塊獲得。
【編輯推薦】















 
 
 
 
 
 
 