<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 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

    上篇:http://m.tkk7.com/jinfeng_wang/archive/2006/05/11/45726.html

    先來回復兩個回帖:
    "你可以把IO等異常轉化成你類庫中中定義的異常。當然你定義的異常是Checked Exception 還是 UnChecked Excetion 那你自己定了。 "

    假設我按照這條建議去做了,那么我可以拋出XXXLibException。假設我的異常采用的是CheckedException,那么客戶程序員可以捕捉它。但是對于不同的出錯原因(例如不同的原因,包括無權限、硬盤滿、U盤被拔了等等,導致無法正常寫日志文件),程序都是捕捉XXXLibException,那么客戶程序員就無法根據不同的異常去做相應的處理(例如提示用戶修改權限、直接啟用備用目錄,直接退出程序)。總之,如果異常類型不同,客戶程序可以根據“異常類型”做不同的工作(編譯器+工具可以實現自動代碼生成);但是如果全部合并為一個異常,那么客戶程序只能根據“ExceptionMessage”嘗試著做不同的工作(恰恰目前沒有辦法完成自動編碼)。



    "要知道 JDK 的 FileWriter 是可以拋出 IOException 的子類的,只要文檔足夠詳細,Java代碼中也可以只去捕捉更明細的異常, 也可以就捕捉并重新拋出包裝過的異常(甚至是RuntimException),除非呆板地去捕獲每個異常,不然代碼怎么會丑陋呢?"

    RuntiomeException,也就是UncheckedException(類于.NET的Exception),它不會要求客戶代碼強行捕捉異常,據此我寫了下面的一個程序:
    private void button1_Click(object sender, System.EventArgs e)
    ??{
    ???throw new Exception("s");
    ??}
    ?????我只試了.NET的程序,出現的界面大家自己試?。因為UncheckedException沒有要求客戶程序去捕捉(客戶程序員不能自覺的發現庫中拋出的各種異常),讓最終用戶直接面對這樣的異常,是一個道德的事情么?

    posted on 2006-05-12 20:21 jinfeng_wang 閱讀(1295) 評論(2)  編輯  收藏 所屬分類: javaview.Net

    評論

    # re: Checked Exception VS UnChecked Excetion (續) 2006-05-12 20:55 原創專欄 開源學習
    但是對于不同的出錯原因(例如不同的原因,包括無權限、硬盤滿、U盤被拔了等等,導致無法正常寫日志文件),程序都是捕捉XXXLibException
    難道你的類庫只寫一個異常類嗎?我指的可不是一個類庫一個異常啊!
    建議樓主看看jdk的源碼吧!
    看看spring怎么處理DAO出現的異常吧。我感覺比較經典。

    http://static.springframework.org/spring/docs/1.2.x/reference/dao.html  回復  更多評論
      

    # re: Checked Exception VS UnChecked Excetion (續) 2006-05-13 14:08 thinkbase
    "因為UncheckedException沒有要求客戶程序去捕捉" ---- 照這么說, .Net 的異常不是全都是 UncheckedException 嗎? 我說過可以拋出 RuntimeException, 可是我沒有說你只需要使用一種 RuntimeException 啊, 如果 Java 開發人員希望以 .Net 的異常處理風格開發一個庫, 他完全可以把拋出的異常都定義為 RuntimeException 的不同子類;

    記住, 我們不僅可以使用現有的各種 Exception 類, 很多情況下我們還需要自己設計一個自定義 Exception 的層次結構哦.

    上面那條評論提到的那個鏈接, 建議去看看.

    BTW, 這么討論下來, 我倒決定 Java 在這方面比 .Net 有更多選擇 :)  回復  更多評論
      

    主站蜘蛛池模板: 杨幂最新免费特级毛片| 国产成人精品免费视频大全麻豆| 亚洲精品无码久久一线| 6080午夜一级毛片免费看6080夜福利| 亚洲AV无码成人专区| 亚洲成a人片在线观看久| 一级毛片成人免费看免费不卡| 亚洲国产区男人本色| 亚洲精品午夜无码专区| 拍拍拍又黄又爽无挡视频免费| 成人无码视频97免费| 2020国产精品亚洲综合网 | 四虎成人免费观看在线网址| 午夜成人无码福利免费视频| 青青草原精品国产亚洲av| 国产成人精品免费直播| 69视频在线观看免费| 一本大道一卡二大卡三卡免费| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲国产中文字幕在线观看| 亚洲免费综合色在线视频| 曰批全过程免费视频在线观看无码| 亚洲熟女综合一区二区三区| 亚洲国产精久久久久久久| 国产一区二区三区免费视频| 成人免费视频77777| 嫩草影院在线播放www免费观看 | 国产2021精品视频免费播放| 黄色视频在线免费观看| 亚洲精品亚洲人成在线| 99久久亚洲精品无码毛片| 国产成人精品日本亚洲专区| 免费看美女被靠到爽| 在线看片无码永久免费视频| 久久aa毛片免费播放嗯啊| 久久久久免费视频| 免费精品国产自产拍在线观看| 亚洲国产精品无码久久久秋霞1| 亚洲沟沟美女亚洲沟沟| 亚洲狠狠久久综合一区77777| 伊人久久综在合线亚洲91|