自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#異常處理詳細(xì)剖析

開發(fā) 后端
這里介紹,C#異常處理是程序設(shè)計(jì)的一部分。在C#異常處理是通過Exception基類進(jìn)行的,可以創(chuàng)建自己的異常類,但這個(gè)類必須是繼承自Exception基類。

學(xué)習(xí)C#語言時(shí),經(jīng)常會(huì)遇到C#異常問題,這里將介紹C#異常處理問題的解決方法。

異常是程序運(yùn)行中發(fā)生的錯(cuò)誤,C#異常處理是程序設(shè)計(jì)的一部分。在C#異常處理是通過Exception基類進(jìn)行的,可以創(chuàng)建自己的異常類,但這個(gè)類必須是繼承自Exception基類。

異常將導(dǎo)致不完善或者不需要的結(jié)果,因此在程序設(shè)計(jì)中需要處理異常。異常也可以是象"IndexOutOfBounds"這樣的錯(cuò)誤,這個(gè)錯(cuò)誤表示程序試圖訪問數(shù)組中部存在的元素;比如數(shù)組***元素為100,當(dāng)試圖訪問元素101時(shí)就將會(huì)發(fā)生這樣的錯(cuò)誤。但這些都是內(nèi)建的異常,可以直接通過 Exception基類處理,如果發(fā)生的異常不是內(nèi)建的,那么就需要我們自己見一個(gè)C#異常處理類,當(dāng)然這個(gè)類時(shí)繼承自Exception基類。

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

  1. using System;  
  2. public class MyException:Exception  
  3. {  
  4. public string s;  
  5. public MyException():base()  
  6. {  
  7. s=null;  
  8. }  
  9. public MyException(string message):base()  
  10. {  
  11. s=message.ToString();  
  12. }  
  13. public MyException(string message,Exception myNew):base(message,myNew)  
  14. {  
  15. s=message.ToString();// Stores new exception message into class member s  
  16. }  
  17. public static void Test()  
  18. {  
  19. string str,stringmessage;  
  20. bool flag=false;  
  21. stringmessage=null;  
  22. char ch=' ';  
  23. int i=0;  
  24. Console.Write("Please enter some string (less than 27 characters) - ");  
  25. str=Console.ReadLine();  
  26. try{  
  27. ch=str[i];  
  28. while (flag==false)  
  29. {  
  30. if (ch=='\r')  
  31. {  
  32. flag=true;  
  33. }  
  34. else{  
  35. ch=str[i];  
  36. i++;  
  37. }  
  38. }  
  39. }  
  40. catch(Exception e){  
  41. flag=true;  
  42. }  
  43.  
  44. if (i>27)  
  45. {  
  46. stringmessage="你的輸入不能超過27個(gè)字 !";  
  47. throw new MyException(stringmessage);  
  48. }  
  49. }  
  50. public static void Main()  
  51. {  
  52. try  
  53. {  
  54. Test();  
  55. }  
  56. catch(MyException e)  
  57. {  
  58. Console.WriteLine(e.s);  
  59. }  
  60. }  
  61. }  

上面的代碼建立了一個(gè)新的繼承于Exception基類的異常類叫MyException,這個(gè)類有三個(gè)過載構(gòu)造函數(shù),采用三個(gè)構(gòu)造函數(shù)的目的十分簡(jiǎn)單:為了能夠過載基類的構(gòu)造函數(shù)。基類中缺省的和已經(jīng)實(shí)現(xiàn)的構(gòu)造函數(shù)必須在繼承類中實(shí)現(xiàn),但是我們?cè)O(shè)計(jì)這個(gè)類的真正目的是:當(dāng)用戶輸入超過27 個(gè)字就顯示一段錯(cuò)誤提示信息,提醒用戶輸入不能超過27個(gè)字。雖然這更像是數(shù)據(jù)驗(yàn)證而不是一個(gè)真正的異常但卻是一個(gè)比較好的例子,新的異常 MyException被函數(shù)Test()拋出,通過該方法信息"你的輸入不能超過27個(gè)字"被main()的catch塊獲得。

【編輯推薦】

  1. C#窗體里調(diào)用淺談
  2. C#調(diào)用ListEmployee命令
  3. C# CreateEmployeeDefinition()函數(shù)
  4. C#實(shí)現(xiàn)斷點(diǎn)續(xù)傳詳細(xì)剖析
  5. C# Employee對(duì)象淺談
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-08-27 17:14:36

C# Socket

2009-09-18 10:00:17

C#數(shù)組操作

2009-08-27 17:51:34

C#匿名方法

2009-09-03 16:58:49

C#內(nèi)存管理

2009-09-11 11:17:04

C#引用類型

2009-09-07 13:42:56

C# Pop3類

2009-08-28 15:38:49

C#實(shí)現(xiàn)斷點(diǎn)續(xù)傳

2009-08-06 14:08:08

C#語言異常處理

2009-09-04 11:06:40

C#訪問修飾符

2009-08-31 16:29:21

C#控制輸入法

2009-08-05 18:28:05

C#異常處理

2009-08-05 18:09:17

C#異常處理機(jī)制

2009-09-07 15:21:38

Java與C#事件處理

2024-04-16 12:18:05

編程異常處理錯(cuò)誤返回

2009-08-28 17:46:18

C#讀取Word文檔

2009-09-01 16:29:03

QuickSort C

2009-09-07 14:29:52

C# ServiceC

2009-09-14 14:17:11

Linq異常處理

2010-01-13 13:42:55

C++編譯器

2021-03-25 07:44:39

C++異常處理開發(fā)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)