最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#異常處理的一些經(jīng)驗(yàn)和技巧

 更新時(shí)間:2014年03月20日 11:46:27   作者:  
本文是異常處理經(jīng)驗(yàn)性的文章,其實(shí)跟C#關(guān)系也不大。比較適合剛剛熟悉異常語法,而缺乏實(shí)戰(zhàn)的讀者。當(dāng)然,經(jīng)驗(yàn)老練的讀者也可指出不足、給予意見、補(bǔ)充說明,一起完善文章,分享更多知識(shí)與經(jīng)驗(yàn)

1、什么時(shí)候該異常處理?
1)代碼最外層,如WinFrom,避免用戶看到內(nèi)部異常信息用戶體驗(yàn)不好,或者造成程序崩潰。
2)遇到異常需要恢復(fù)狀態(tài)或者重試的地方。例如連接數(shù)據(jù)庫偶然失敗了,可以有個(gè)重連機(jī)制,在Catch塊重新連接數(shù)據(jù)庫。
3)對(duì)于一系列有可能失敗的任務(wù),其中有一個(gè)任務(wù)失敗,不想影響到其他任務(wù)。例如要上傳100張圖片,不想因?yàn)橐粡垐D片上傳發(fā)生異常而失敗,進(jìn)而終止整個(gè)上傳任務(wù),僅需要記錄下失敗的圖片,提醒用戶重傳即可。
2、異常處理需要注意的地方
1)Catch和Finally代碼應(yīng)該非常短,而且成功率極高,避免自己又拋出一個(gè)異常。否則CLR會(huì)終止進(jìn)程,避免安全漏洞或者不可預(yù)知的后果。這個(gè)類似于Windows藍(lán)屏,發(fā)生了嚴(yán)重的錯(cuò)誤,寧愿使系統(tǒng)不可用。
2)Catch塊盡量避免直接捕捉異常的基類Exception,而應(yīng)該捕捉具體的異常類。
3、異常處理的方法和技巧
1)是否能構(gòu)建統(tǒng)一的框架處理異常,而不用手工來處理呢?
有的人可能會(huì)問,能不能偷懶,在一個(gè)地方處理異常就行了。如果僅僅是記錄異常系統(tǒng)信息,通知到用戶,而且這些信息通常是可以缺少一些上下文的,是可以構(gòu)建同一的機(jī)制記錄異常信息的。

例如:
WinFrom的Application對(duì)象本身就提供了ThreadException時(shí)間來捕捉為處理的異常

復(fù)制代碼 代碼如下:

static void Main()
    {
      //注冊(cè)捕捉異常事件
      Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form1());
    }
    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
      Exception ex = e.Exception;
      //做一些極其簡單的記錄異常信息操作
    }

又例如:
WebFrom的Global.asax本身就已經(jīng)定義了void Application_Error(object sender, EventArgs e) 來處理異常
復(fù)制代碼 代碼如下:

void Application_Error(object sender, EventArgs e)
    {
      // 在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
      Exception ex = Server.GetLastError();
      //處理完異常后清除異常
      Server.ClearError();
    }

但是很多時(shí)候,異常處理,不僅僅只是記錄到了錯(cuò)誤信息就可以了,有時(shí)候是需要失敗重試或者清理資源等等,因此,僅僅靠統(tǒng)一構(gòu)建異常處理框架是不夠靈活的,因此可以一方面統(tǒng)一處理,另外一方面特殊的地方可以另外處理。

相關(guān)文章

  • C#取得隨機(jī)顏色的方法

    C#取得隨機(jī)顏色的方法

    這篇文章主要介紹了C#取得隨機(jī)顏色的方法,通過自定義函數(shù)實(shí)現(xiàn)隨機(jī)顏色的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C#實(shí)現(xiàn)動(dòng)態(tài)顯示及動(dòng)態(tài)移除圖片方法

    C#實(shí)現(xiàn)動(dòng)態(tài)顯示及動(dòng)態(tài)移除圖片方法

    這篇文章主要介紹了C#實(shí)現(xiàn)動(dòng)態(tài)顯示及動(dòng)態(tài)移除圖片方法,對(duì)于C#的初學(xué)者了解圖像操作有一定的幫助,需要的朋友可以參考下
    2014-07-07
  • C#?生成隨機(jī)數(shù)的方法示例

    C#?生成隨機(jī)數(shù)的方法示例

    本文介紹了C#中的Random類,用于生成隨機(jī)數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • C#實(shí)現(xiàn)獲取不同對(duì)象中名稱相同屬性的方法

    C#實(shí)現(xiàn)獲取不同對(duì)象中名稱相同屬性的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)獲取不同對(duì)象中名稱相同屬性的方法,涉及C#操作類與對(duì)象屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • C#更改tabControl選項(xiàng)卡顏色的方法

    C#更改tabControl選項(xiàng)卡顏色的方法

    這篇文章主要介紹了C#更改tabControl選項(xiàng)卡顏色的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了C#更改tabControl選項(xiàng)卡顏色的的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • C#中Property和Attribute的區(qū)別實(shí)例詳解

    C#中Property和Attribute的區(qū)別實(shí)例詳解

    這篇文章主要介紹了C#中Property和Attribute的區(qū)別,較為詳細(xì)的分析了C#中Property和Attribute的功能、定義、區(qū)別及使用時(shí)的相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2015-06-06
  • 詳解c# 深克隆與淺克隆

    詳解c# 深克隆與淺克隆

    這篇文章主要介紹了c# 深克隆與淺克隆的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#使用RabbitMQ發(fā)送和接收消息工具類的實(shí)現(xiàn)

    C#使用RabbitMQ發(fā)送和接收消息工具類的實(shí)現(xiàn)

    RabbitMQ是一個(gè)消息的代理器,用于接收和發(fā)送消息,本文主要介紹了C#使用RabbitMQ發(fā)送和接收消息工具類的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • C# 實(shí)現(xiàn)微信自定義分享的示例代碼

    C# 實(shí)現(xiàn)微信自定義分享的示例代碼

    這篇文章主要介紹了C# 實(shí)現(xiàn)微信自定義分享的示例代碼,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的同學(xué)可以自己動(dòng)手嘗試一下
    2024-02-02
  • C# 給PPT中的圖表添加趨勢線的方法

    C# 給PPT中的圖表添加趨勢線的方法

    本文內(nèi)容分享通過C#程序代碼給PPT文檔中的圖表添加數(shù)據(jù)趨勢線的方法,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09

最新評(píng)論

新源县| 宜章县| 莎车县| 平利县| 确山县| 昭苏县| 乌什县| 镇坪县| 庆安县| 江永县| 平遥县| 五家渠市| 宝鸡市| 宁南县| 建湖县| 高尔夫| 六枝特区| 增城市| 梅河口市| 左贡县| 扬州市| 宣汉县| 汉沽区| 房产| 东港市| 从化市| 通江县| 大厂| 海城市| 阿巴嘎旗| 信丰县| 泰安市| 许昌县| 富阳市| 海宁市| 合水县| 长宁县| 虹口区| 高雄市| 内江市| 达日县|