生活随笔
收集整理的這篇文章主要介紹了
.NET架构小技巧(8)——优待异常
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
天有不測風(fēng)云,人有旦夕禍福,程序呢——會有異常錯誤。
C#中用try,catch,finally來捕捉處理異常,捕捉誰的異常呢?一般都是系統(tǒng)類庫或三方類庫中拋出的異常,那如果我自己架構(gòu)程序,異常也是要好好考慮的一個方面。
首先要給自己的異常定義好級別,建議按產(chǎn)品(DaMei),項(xiàng)目(His,Lis),模塊來(Registered),它們依次是后者的父類,產(chǎn)品的父類是ApplicationException,整理來說是個樹狀結(jié)構(gòu)。這些異常在自己的對應(yīng)的模塊中使用,這樣的好處是,如果需要集中處理一些事務(wù)時,可以在父類的構(gòu)造中進(jìn)行集中處理,不用細(xì)化到每個細(xì)節(jié)的異常子類中。這樣做還有一個好處是在web項(xiàng)目中,我們可以判斷是自定義的異常,可以進(jìn)行分類處理,是系統(tǒng)的異常,可以作另一分支處理。
當(dāng)然,要整理項(xiàng)目代碼中,我們盡量不要用拋異常這種相對粗暴的方式來處理,而以業(yè)務(wù)分支的方式來處理反面分支(如返回false),從而把錯誤或提示體現(xiàn)出來(比如控制臺用Console,winform用MessageBox.Show,web就要返到前端提示了);如果我們是獨(dú)立的dll,不知道怎么提示,有可能調(diào)用端是winform或web,需要報(bào)出錯誤,這時就要用throw的方式來反饋異常了。
class Program{static void Main(){try{throw new HisException("his數(shù)據(jù)庫未初始化!");}catch (RegisteredException exc){Console.WriteLine(exc.Message);}catch (HisException exc){Console.WriteLine(exc.Message);}catch (DaMeiException exc){Console.WriteLine(exc.Message);}catch (Exception exc){Console.WriteLine(exc.Message);}finally{}Console.WriteLine("");}}/// <summary>/// 大美醫(yī)療信息系統(tǒng),這是我起的名,整個系統(tǒng)異常類/// </summary>public class DaMeiException : ApplicationException{public DaMeiException(string message) : base(message){Console.WriteLine("{0},{1}", DateTime.UtcNow.ToString("yyyy-MM-ss HH:mm:ss"), message); }public DaMeiException() : base(){}}/// <summary>/// His 異常類/// </summary>public class HisException : DaMeiException{public HisException(string message) : base(message){}public HisException() : base(){}}/// <summary>/// 掛號模塊異常類/// </summary>public class RegisteredException : HisException{public RegisteredException(string message) : base(message){}public RegisteredException() : base(){}}/// <summary>/// Lis 異常類/// </summary>public class LisException : DaMeiException{public LisException(string message) : base(message){}public LisException() : base(){}}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎
總結(jié)
以上是生活随笔為你收集整理的.NET架构小技巧(8)——优待异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。