日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#異常處理詳細(xì)剖析

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

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

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

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

 
 
 
  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個字 !";  
  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. }  

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


本文題目:C#異常處理詳細(xì)剖析
轉(zhuǎn)載注明:http://www.5511xx.com/article/cceieoi.html