Java異常處理機(jī)制在日常開發(fā)中應(yīng)用頻繁,其最主要的不外乎幾個關(guān)鍵字:try、catch、finally、throw、throws,以及各種各樣的Exception。本篇文章主要在基礎(chǔ)的使用方法上,進(jìn)一步分析在開發(fā)中如何使用異常機(jī)制更合理。
try-catch-finally
try-catch-finally塊的用法比較簡單,使用頻次也最高。try塊中包含可能出現(xiàn)異常的語句(當(dāng)然這是人為決定的,try理論上可以包含任何代碼),catch塊負(fù)責(zé)捕獲可能出現(xiàn)的異常,finally負(fù)責(zé)執(zhí)行必須執(zhí)行的語句,這里的代碼不論是否發(fā)生了異常,都會被執(zhí)行。
針對這部分,因?yàn)楹芑A(chǔ),所以就提幾點(diǎn)比較關(guān)鍵的建議:
1、當(dāng)你在寫try-catch語句的時候,腦子里是知道自己要去針對哪種異常進(jìn)行處理的,不要只是以防萬一,加了個catch(Exception e),這是毫無意義的。并且,一個try塊中可能有多個異常,對于每一類異常,要分別寫一個catch進(jìn)行捕獲?! ?/p>
2、針對可能出現(xiàn)異常的語句進(jìn)行try-catch,大段代碼的try-catch會非常不利于維護(hù)代碼時定位異??赡馨l(fā)生的位置,對于肯定不會發(fā)生異常的穩(wěn)定的代碼,不需要放在try塊中。
3、try-catch雖然在功能上,可以成為流程控制的工具,達(dá)到條件分支的效果。但相比于if-else語句,java的異常處理機(jī)制基于面向?qū)ο蟮乃枷?,使用過程中需要更多的時間與空間的開銷,所以不要用異常機(jī)制去做基本的條件判斷,只有在程序會因?yàn)楫惓6袛鄷r進(jìn)行捕獲和處理。