日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]這里新人,就來簡單說說自己對異常的看法吧。java的異常機制是一把雙刃劍;如果用得好可以做大事情,用不好就會出現(xiàn)意想不到的問題。1.throw的用法throw是拋出異常所用,不過下面的例子是不能這樣t

這里新人,就來簡單說說自己對異常的看法吧。


java的異常機制是一把雙刃劍;如果用得好可以做大事情,用不好就會出現(xiàn)意想不到的問題。


1.throw的用法

throw是拋出異常所用,不過下面的例子是不能這樣throw的:

throw new IOException();

異常鏈的機制需要保留,且不能隨便拋出空的異常信息。

還有,基本上要避免拋出基于空指針異常的基類異常(RuntimeException、Exception、Throwable)

因為空指針異常這樣的運行時異常極有可能發(fā)生在任何地方,如果直接拋出的話會讓調(diào)用者難以發(fā)現(xiàn)或者需要捕捉意外的異常從而導(dǎo)致更多的資源占用。

而且大量的非空判斷也會使代碼的效率和可讀性下降。

所以,如果想要用異常機制處理問題且不只是日志記錄的話就拋出相對具體的非運行時異常吧,而其他的時候就拋出具體的運行時異常(而且不能是NullPointerException,否則很難打出異常鏈)

2.try-catch的用法

try-catch的部分盡量要控制好,這個也不容易

首先,try-catch部分如果捕獲可檢查性異常要從里到外是具體異常到基類異常或者是并列的級別同樣大小的異常的關(guān)系

最好不要只出現(xiàn)try-catch(Exception e)或者try-catch(Throwable t)之類的或者出現(xiàn)try-catch基于空指針異常的基類或者try-catch空指針異常,否則會把意外的運行時異常也捕獲導(dǎo)致出現(xiàn)潛在的問題

如果想catch(Exception)或者throwable的話一般catch塊只能寫日志記錄信息和返回值信息,而且這樣的話最好要用finally來釋放資源(流的關(guān)閉、鎖的解鎖、數(shù)據(jù)刷新、容器的清空等都可以在這里操作),避免資源浪費和出現(xiàn)更大的問題。當(dāng)然,finally一定是寫這種而不能出現(xiàn)中斷類型的操作!

還有,除了圖片刷新之類,其他情況最好不要直接返回null,否則就可能發(fā)生空指針異常。

對了,能少用異常就少用異常,既能減少性能消耗還可以使代碼變得更容易看明白,差錯也方便。而且盡可能少地出現(xiàn)大量代碼出現(xiàn)在try塊中的情況。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉