溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#異常怎么處理

發(fā)布時間:2021-12-01 13:52:36 來源:億速云 閱讀:140 作者:iii 欄目:編程語言

這篇文章主要講解了“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)注!

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI