到底什么是異常
TMD 到底什么是異常
程序按照預(yù)期的流程運(yùn)行..正常態(tài)
出現(xiàn)未預(yù)計(jì)到的情況..比如網(wǎng)線斷了gddg...文件打開失敗...
這個(gè)時(shí)候 程序是繼續(xù)執(zhí)行 還是 其他的選擇 或者 退出app ....
實(shí)際的情況是 有可能可以恢復(fù),從業(yè)務(wù)角度出發(fā)..我可以重新試圖連接...可以重新打開文件或者換一個(gè)文件 或者重新創(chuàng)建一個(gè)新的文件....
只要不是致命的問題..通常是可以恢復(fù)的...沒必要退出app...
如果你不捕獲 網(wǎng)絡(luò)斷開或者文件無法打開的 異常 ...那么為什么程序退出了呢...因?yàn)槟銢]有告訴你的程序 如果出錯(cuò)了應(yīng)該怎么辦...sun 規(guī)避風(fēng)險(xiǎn),你出錯(cuò)了,可能下一步要錯(cuò)誤的扣除你工資,為了解除這種不確定執(zhí)行的巨大風(fēng)險(xiǎn)...那么就把你app shutdown了....
如果你有catch 對(duì)于程序來說 你有防備 出現(xiàn)異常的準(zhǔn)備...那么真到了異常 那么就看你異常的處理流程 是否奏效....
異常體系....瞎扯淡...就是幾個(gè)異常類的繼承關(guān)系(虛擬機(jī)內(nèi)部異常,用戶定義異常 ...).....還能有什么 .
無非是 根據(jù)不同的出錯(cuò)類型來 包裝異常...給這個(gè)這種類型的異常 或者 這類問題取一個(gè)名字....
當(dāng)你沒看堆棧信息的時(shí)候大概可以 判斷一下 問題再那里而已.....
異常來跳轉(zhuǎn) 程序是因?yàn)?無法預(yù)期異常后下步該如何執(zhí)行 所以跳轉(zhuǎn)...
異常是比較消耗系統(tǒng)資源的.
.net 為什么沒有主動(dòng)要求你 拋出異常....
因?yàn)?net的主要架構(gòu)師 再設(shè)計(jì).net時(shí)候看到了 很多程序員 一層一層的拋出異常只在最底層 main中截獲異常....
那么大量的函數(shù)都是 throws 其實(shí)根本無意義....所以他再設(shè)計(jì)的時(shí)候就沒有采取和java 相同的方式 .
posted on 2009-10-10 01:07 小高 閱讀(355) 評(píng)論(2) 編輯 收藏 所屬分類: java基礎(chǔ) 、DotNet 、Exception 異常處理