<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

       假設(shè)我的團(tuán)隊正在開發(fā)一個庫程序,由于某種原因,現(xiàn)在希望能夠得到所有最外層 API 所拋出的所有異常的類型、各自的信息、并且能夠附上各種異常所出現(xiàn)的原因和解決辦法。如果開發(fā)過程中內(nèi)部使用的是 Unchecked Exception ,那么對于這個任務(wù)簡直就麻煩了。沒辦法,開發(fā)人員一個個的自我進(jìn)行檢查然后統(tǒng)計吧,但是往往這樣的統(tǒng)計總會有漏網(wǎng)之魚。現(xiàn)在的 MSDN 中的異常信息糟糕的很,最底層的公有庫的異常信息內(nèi)容可能完整一點,但是上層的庫的異常信息糟糕的不行,根本不能完整的報全所有出錯的可能性。

    你可以想象的出,一個庫函數(shù)的異常信息不完整,對于他的用戶來說,是多么不友好的事情。假設(shè) MSDN File.Open() 會拋出 IOException ,你的程序就很難想到很規(guī)矩的對 IOException 做了 catch ,然后提示用戶檢查相應(yīng)位置的文件是否存在 / 被打開等。別指望 MSDN 的那些信息能夠?qū)K端用戶有多大的幫助,太多不懂計算機(jī)的人在傻呆呆的握著鼠標(biāo)了。再加上 MicroSoft 的提示信息本身就存在著“答非所問”,“莫名其妙”的事情,用戶看到這些情況就更不知道怎么解決問題了。再加上自己的應(yīng)用程序中會彈出一個個“蹩腳”的運行時錯誤的錯誤框,真的不是一個很如意的創(chuàng)作。

    ? ? ? ? 但是,如果使用的是 Checked Exception ,這時候編譯器會強(qiáng)迫你的外部接口的異常相當(dāng)?shù)耐暾钇鸫a可以做到比 MSDN 的異常類型齊整。

    ?

    ?

    ?

    ?

    posted on 2006-06-03 21:22 jinfeng_wang 閱讀(1959) 評論(5)  編輯  收藏 所屬分類: javaThinkingview.Net

    評論

    # re: Checked Exception VS UnChecked Excetion (續(xù)2) 2006-06-03 22:32 quitgame
    Checked Exception 確實有很多好處,但需要開發(fā)人員具有對異常比較深刻的理解,否則寫出的代碼可能是 throws Exception catch(Exception) 這種,還不如沒有,  回復(fù)  更多評論
      

    # re: Checked Exception VS UnChecked Excetion (續(xù)2) 2006-06-04 00:06 CowNew開源團(tuán)隊
    總感覺.net的異常機(jī)制不如java的好,異常不捕獲也照樣能編譯,好可怕。  回復(fù)  更多評論
      

    # re: Checked Exception VS UnChecked Excetion (續(xù)2) 2006-06-08 09:47 denis長明
    @CowNew開源團(tuán)隊
    Java 里面的異常是分成兩種的了,正是標(biāo)題所說的checked 和 unchecked的 checked的都是從Exception繼承過來的,只要在程序里面throw了就一定要catch,否則編譯通過不了, 還有一種繼承自RuntimeException 這里面的異常可以隨便throw, 可以不用catch, 現(xiàn)在很多框架都設(shè)計成unchecked的了, 比如很多數(shù)據(jù)庫操作, SqlException 很多人catch了后只是log了一下, 根本就沒有做任何的處理,這樣的異常不catch也罷,為了給客戶一個友好的界面,你可以在框架最外層catch一下Throwable然后轉(zhuǎn)換成對應(yīng)的錯誤信息.   回復(fù)  更多評論
      

    # re: Checked Exception VS UnChecked Excetion (續(xù)2) 2006-06-08 23:11 jinfeng_wang
    "SqlException 很多人catch了后只是log了一下, 根本就沒有做任何的處理"

    你只是假設(shè)了某些用戶的習(xí)慣,但是對于某一部分的用戶,他想做一些特殊的處理操作,那么單純的SqlException能夠滿足要求么?
    其次,如果用戶的習(xí)慣都改過來了,那么SqlClient如何應(yīng)對這樣的要求?SqlClient重新實現(xiàn)??
    再次,我們現(xiàn)在談的不局限于SqlException,我們討論的是方法學(xué),程序設(shè)計的方法學(xué)。
    這個討論我會繼續(xù)下去的。
    請記住一點,現(xiàn)在很多人已經(jīng)用“Exception”做為程序流程的控制依據(jù),因為CheckedException是要求客戶端捕捉的,而用返回值是不能達(dá)到控制用戶程序的,所以很多時候CheckedException用來做“程序流程控制”也是合理的。

      回復(fù)  更多評論
      

    # re: Checked Exception VS UnChecked Excetion (續(xù)2) 2008-09-17 11:35 aaaa
    asdasd  回復(fù)  更多評論
      

    主站蜘蛛池模板: 亚洲欧洲国产经精品香蕉网| 亚洲AV无码一区二区大桥未久| 亚洲伊人久久大香线蕉啊| 黄页网站在线视频免费| 91精品国产免费久久国语麻豆| www亚洲一级视频com| 亚洲情A成黄在线观看动漫软件| 黄色片免费在线观看| 亚洲av高清在线观看一区二区| 久久精品免费观看| 亚洲日本在线电影| 成年私人影院免费视频网站| 亚洲欧洲尹人香蕉综合| 亚洲国产成人精品无码久久久久久综合 | 日韩精品视频免费观看| 老色鬼久久亚洲AV综合| 热99RE久久精品这里都是精品免费| 亚洲AⅤ无码一区二区三区在线| 亚洲精品免费在线观看| 亚洲视频在线免费看| 一个人看的www在线观看免费| 亚洲欧洲尹人香蕉综合| 国产乱辈通伦影片在线播放亚洲 | 精品多毛少妇人妻AV免费久久| 亚洲成av人片不卡无码久久| 国产国产人免费视频成69堂| 亚洲国产韩国一区二区| 国产亚洲精久久久久久无码AV| 在线a毛片免费视频观看| 四虎精品免费永久免费视频| 亚洲国产成人久久综合碰| 亚洲免费综合色在线视频| 全免费a级毛片免费看| 亚洲精品美女在线观看| 全免费一级午夜毛片| 视频免费1区二区三区| 色偷偷尼玛图亚洲综合| 亚洲一区免费在线观看| 亚洲日本韩国在线| 99在线热视频只有精品免费| 亚洲人精品亚洲人成在线|