一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

一個(gè)讓人遺忘的角落—Exception(二)

  在上一篇中"一個(gè)被人遺忘的角落"中,跟大家簡單介紹了一下Exception,也使大家充分的了解了Exception管理在一個(gè)項(xiàng)目中的重要性,那如何在我們的項(xiàng)目中處理異常呢?因?yàn)槲覐氖碌氖荳eb開發(fā),所以我只跟大家討論Web的解決方案,Win的解決方式,還希望同大家一起探討。

  上一章中我們了解了異常發(fā)生的原因,同時(shí)也說了不存在沒有bug的程序,任何網(wǎng)站都會(huì)遇到各種各樣的問題,無論是大網(wǎng)站還是小網(wǎng)站都會(huì)存在,但大公司和小公司對(duì)待異常的態(tài)度全然不同,一個(gè)是主動(dòng)出擊,一個(gè)是守株待兔,我們是好的開發(fā)者,我們不能坐以待斃,我們必須主動(dòng)出擊。好了,廢話少說,切入主題。

  現(xiàn)在網(wǎng)站一般都采用多層開發(fā),多層開發(fā)的時(shí)候,我們應(yīng)該在哪里處理異常、在拋出異常呢?微軟的意見是類庫的開發(fā)人員盡量不要處理異常,類庫的編寫應(yīng)該按照正常的邏輯去編寫,當(dāng)然也有例外,注意事項(xiàng)可以參見"設(shè)計(jì)異常解決方案的幾點(diǎn)注意事項(xiàng) ",好的,按照規(guī)范,我們應(yīng)該盡量在高層進(jìn)行捕捉和處理,那我們?cè)撛趺床蹲?,捕捉后怎么處理,捕捉哪些異常呢?雖然微軟提供了很多系統(tǒng)異常,但是這些異常只是負(fù)責(zé)拋出相關(guān)的信息,并沒有為記錄下來,或者出現(xiàn)高級(jí)異常的時(shí)候,及時(shí)通知我們,這樣的做法還是守株待兔,我們還是應(yīng)該主動(dòng)的對(duì)其進(jìn)行處理。好在微軟讓我們可以自由的創(chuàng)建自定義的Exception,最好是設(shè)定一個(gè)自定義Exception基類,讓你的其他自定義Exception都繼承這個(gè)類,以便今后更好的擴(kuò)展。拋出異常其實(shí)是性能消耗很大的操作,但是Richer教父說過,拋出異常的性能和你程序的穩(wěn)定性相比,就變得非常渺小了。所以我們還是偏向于穩(wěn)定性。因?yàn)樘幚懋惓5男阅芟?,只是在異常發(fā)生時(shí)才產(chǎn)生,所以性能方面的問題,我們可以忽略了。(或許這話比較拗口,但相比系統(tǒng)的性能,我更趨向于系統(tǒng)的穩(wěn)定)

如何創(chuàng)建一個(gè)自定義的Exception?

  不得不說微軟考慮的太周到了,要?jiǎng)?chuàng)建一個(gè)自定義的Exception是非常簡單的。打開VS,創(chuàng)建一個(gè)項(xiàng)目,然后添加一個(gè)類,在namespace范圍內(nèi),輸入Exception,然后2下Tab,VS就自定幫您創(chuàng)建一個(gè)自定義的Exception了。Exception的相關(guān)屬性和方法,可以參見MSDN。不過自動(dòng)創(chuàng)建的Exception都是繼承System.Exception的,按照微軟當(dāng)初的設(shè)想,自定義的異常應(yīng)該繼承System.ApplicationException (可笑的是,微軟自己都沒有遵守這個(gè)約定)。我們?cè)O(shè)定這個(gè)作為我們的Exception基類 MyBaseException。

代碼片斷:

[global::System.Serializable]

public class MyBaseException : ApplicationException

{

public MyBaseException() { }

public MyBaseException(string message) : base(message) { }

public MyBaseException(string message, Exception inner) : base(message, inner) { }

protected MyBaseException(

System.Runtime.Serialization.SerializationInfo info,

System.Runtime.Serialization.StreamingContext context)

:
base(info, context) { }

}

NET技術(shù)一個(gè)讓人遺忘的角落—Exception(二),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕在线观看一区 | 天天躁天天弄天天爱 | 国产成人精品一区二区 | 可以看的毛片 | 激性欧美激情在线播放16页 | 国产成人一区二区三区在线播放 | 91精品国产自产91精品 | 看免费5xxaaa毛片30厘米 | 韩国三级日本三级美三级 | 国产精品中文字幕在线观看 | 国产福利小视频高清在线观看 | 亚洲图片另类小说 | 99成人在线 | 成 人网站免费 | 久久综合久| 99精品久久99久久久久久 | 国产大片线上免费观看 | 国产xx在线观看 | 最近最新中文字幕在线第一页 | v视界成人影院在线视频 | 九九综合 | 国产精品999在线 | 国产小视频在线观看免费 | 九九激情视频 | 超爽人人做人人爽 | 成人久久免费视频 | 亚洲一区二区三区免费 | 色播亚洲精品网站 亚洲第一 | 亚洲综合狠狠 | 国产91 最新 在线 | 人人澡人人模人人添 | 国产xh98hx在线观看 | 成人三级视频在线观看 | 久久精品中文字幕首页 | 欧美成国产精品 | 国产成人精品午夜二三区 | 91在线精品麻豆欧美在线 | 美女一区二区在线观看 | 91情侣高清精品国产 | 玖玖99视频| 91热国内精品永久免费观看 |