老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

C#單例模式引起的自定義異常舉例分析

本篇內容主要講解“C#單例模式引起的自定義異常舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#單例模式引起的自定義異常舉例分析”吧!

專注于為中小企業提供成都做網站、網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業江海免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上1000家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。

案例代碼

對于單例模式,C#有個簡潔的實現,采用靜態的只讀字段實現。

但是如果在單例模式構造函數中,發生了異常自定義異常,在客戶端能捕捉到嗎?

代碼下載: ConfigException為我們定義異常類,TriggerException為異常觸發類。先不要運行,猜下會捕捉到什么異常?

現實

事實上我們的自定義異常沒有沒Catch到,這是現象很隱蔽,主要是他不影響影響我們程序正常運行,只是我們費力定義的自定義異常都沒有起到任何的作用。
通常我們在單例模式的Portal工作,如果發生了異常,而如下日志記錄的異常粒度對于運維一般參考價值不大

{"“ConsoleApplication4.Singleton”的類型初始值設定項引發異常。"} [System.TypeInitializationException]: {"“ConsoleApplication4.Singleton”的類型初始值設定項引發異常。"} Data: {System.Collections.ListDictionaryInternal} HelpLink: null InnerException: {"ComplicatedCalculate 的異常"} Message: "“ConsoleApplication4.Singleton”的類型初始值設定項引發異常。" Source: "ConsoleApplication4" StackTrace: " 在 ConsoleApplication4.Program.Main(String[] args) 位置 E:\\MyStudy\\ArchitectureHOL\\ConsoleApplication4\\ConsoleApplication4\\Program.cs:行號 16" TargetSite: {Void Main(System.String[])} 解決辦法

還是回到經典的單例模式的實現。代碼如下:

 public class Singleton      {         public readonly static Singleton instance = null;         private static object objectLock = new object();         public int Age         {             get;set;         }         public static Singleton Instance         {             get            {                 if (instance == null)                 {                     lock (objectLock)                     {                         if (instance == null)                             instance = new Singleton();                     }                 }                 return instance;             }         }          private Singleton()         {             TriggerException t = new TriggerException();             t.ComplicatedCalculate();         }  }

這樣就可以Catch到我們自定義的異常了。

原因和疑惑

為什么字采用readonly Static 方式實現單例不能捕捉到自定的異常?這個也是調用構造函數Singleton進而觸發異常的,這個我解釋不清楚,也是我寫此文的主要目的,希望有人討論指點下。但是我想以下兩點很重要 :

C#靜態只讀字段在作為動態常量在運行時賦值的時候出現異常,.Net FrameWork把他作為一個一般異常進行處理,把我們的自定義異常作為他的InnerException

C#靜態屬性在MSIL語言就是已經看作為一個方法了。所以其調用的方法異常會被Catch而返回上一級調用者。

到此,相信大家對“C#單例模式引起的自定義異常舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!


本文名稱:C#單例模式引起的自定義異常舉例分析
標題URL:http://www.xueling.net.cn/article/gjoeis.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 成人看片在线观看 | 黄色小说视频网站 | 欧美一区综合 | 麻豆91在线视频 | 丰满少妇高潮惨叫久久久一 | 久久性av | 在线观看国产色视频网站 | 亚洲国产精品成人女人久久 | 在线观看一级毛片 | 无码高潮又爽又黄A片软件 男人搡女人搡到高潮视频 www.黄色小视频 | 259luxu在线观看 | 欧美高清一区三区在线专区 | 亚洲精品国产精品色欲AV | 国产精品国产免费无码专区不卡 | 亚洲日韩爆乳中文字幕欧美 | 一区二区三区国产美女在线播放 | 中文字幕你懂得 | 91精品国产综合久久久动漫日韩 | 一区二区三区视频在线观看 | 免费看草逼 | 亚洲乱码中文字幕综合区 | 亚洲AV无码国产精品夜色午夜 | 国产真实乱人偷精品人妻 | 四虎永久成年免费影院 | 在线天堂资源WWW在线污 | 韩国无码色视频在线观看 | 欧美熟妇XXXXX欧美老妇不卡 | h视频在线免费观看 | 久久99精品国产99久久6尤物 | 老司机精品久久 | 大地资源网高清在线观看视频 | 男人搡女人搡到高潮视频 | 国产免费拔擦拔擦8x在线牛 | 视频二区欧美 | 国产在线精品一区二区在线播放 | 日本a视频在线播放 | 国产乱人偷精品免费视频 | 国产精品啪啪对白自拍 | 日产精品久久久久久久性色91 | 99国产精品入口 | 天天操夜夜操国产精品 |