• 招生咨詢(xún)熱線(xiàn):4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢(xún)熱線(xiàn)
4008-569-579
機(jī)構(gòu)主頁(yè) > 培訓(xùn)資料 > Java開(kāi)發(fā)出現(xiàn)異常時(shí)處理的小技巧有哪些
機(jī)構(gòu)主頁(yè) > 培訓(xùn)資料>Java開(kāi)發(fā)出現(xiàn)異常時(shí)處理的小技巧有哪些

Java開(kāi)發(fā)出現(xiàn)異常時(shí)處理的小技巧有哪些

來(lái)源:廣州達(dá)內(nèi)教育        時(shí)間:2023-05-30        熱度:34℃        返回列表

  Java語(yǔ)言正是因?yàn)檫\(yùn)用到的范圍廣,所以現(xiàn)在不管是個(gè)人的學(xué)習(xí)還是企業(yè)的招聘都是比較多的。不管是用什么語(yǔ)言在開(kāi)發(fā)的時(shí)候都是會(huì)出現(xiàn)異常的,那么在使用java開(kāi)發(fā)出現(xiàn)異常時(shí)處理的小技巧有哪些呢?

  一、異常的分類(lèi)


  Throwable 是所有異常的超類(lèi),下一級(jí)可以分為 Error 和 Exception :


  1. Error


  Error 是指 Java 運(yùn)行時(shí)系統(tǒng)內(nèi)部的錯(cuò)誤,或者說(shuō)它代表了 JVM 本身的錯(cuò)誤,通常都是比較嚴(yán)重的錯(cuò)誤, 比如內(nèi)存溢出,

虛擬機(jī)錯(cuò)誤等等;Error 通常和硬件或 JVM 有關(guān),和程序本身無(wú)關(guān),所以不能被代碼捕獲和處理。


  2. Exception


  我們經(jīng)常說(shuō)的異常是指 Exception,又可以分成運(yùn)行時(shí)異常和檢查異常。


  RuntimeException:運(yùn)行時(shí)異常,這類(lèi)異常在編譯期間不強(qiáng)制代碼捕捉,但是可能在在 JVM

運(yùn)行期間拋出異常;出現(xiàn)此類(lèi)異常,通常是代碼的問(wèn)題,所以需要修改程序避免這類(lèi)異常。常見(jiàn)的運(yùn)行時(shí)異常,比如:NullPointerException、ClassCastException

等等。


  CheckedException:檢查異常,這種異常發(fā)生在編譯階段,Java

編譯器會(huì)強(qiáng)制代碼去捕獲和處理此類(lèi)異常;比如:ClassNotFoundException、IllegalAccessException 等等。


  二、異常的處理方法


  捕獲異常使用 try...catch 語(yǔ)句,把可能發(fā)生異常的代碼放到 try {...} 中,然后使用 catch

捕獲對(duì)應(yīng)的異常;我們也可以在代碼塊中使用 Throw 向上級(jí)代碼拋出異常;在方法中使用 throws 關(guān)鍵字,向上級(jí)代碼拋出異常;


  三、Throw 和 throws 的區(qū)別


  Throw 在方法內(nèi),后面跟著異常對(duì)象;而 throws 是用在方法上,后面跟異常類(lèi);


  Throw 會(huì)拋出具體的異常對(duì)象,當(dāng)執(zhí)行到 Throw 的時(shí)候,方法內(nèi)的代碼也就執(zhí)行結(jié)束了;throws

用來(lái)聲明異常,提醒調(diào)用方這個(gè)方法可能會(huì)出現(xiàn)這種異常,請(qǐng)做好處理的準(zhǔn)備,但是不一定會(huì)真的出現(xiàn)異常。


  四、使用 Exception 的一些建議


  1.

不要試圖通過(guò)異常來(lái)控制程序流程,比如開(kāi)發(fā)一個(gè)接口,正確的做法是對(duì)入?yún)⑦M(jìn)行非空驗(yàn)證,當(dāng)參數(shù)為空的時(shí)候返回“參數(shù)不允許為空”,而不應(yīng)該捕捉到空指針的時(shí)候返回錯(cuò)誤提示。


  2. 僅捕獲有必要的代碼,盡量不要用一個(gè) try...catch 包住大段甚至整個(gè)方法內(nèi)所有的代碼,因?yàn)檫@樣會(huì)影響 JVM

對(duì)代碼進(jìn)行優(yōu)化,從而帶來(lái)額外的性能開(kāi)銷(xiāo)。


  3. 很多程序員喜歡 catch(Exception e),其實(shí)應(yīng)該盡可能地精確地指出是什么異常。


  4. 不要忽略異常,捕捉到異常之后千萬(wàn)不能什么也不做,要么在 catch{...} 中輸出異常信息,要么通過(guò) Throw 或 throws

拋出異常,讓上層代碼處理。


  5. 盡量不要在 catch{...}

中輸出異常后,又向上層代碼拋出異常,因?yàn)檫@樣會(huì)輸出多條異常信息,而且它們還是相同的,這樣可能會(huì)產(chǎn)生誤導(dǎo)。


  6. 不要在 finally{...} 中寫(xiě) return,因?yàn)?try{...} 在執(zhí)行 return 之前執(zhí)行 finally{...} ,如果

finally{...} 中有 return,那么將不再執(zhí)行 try{...} 中的return。


  以上就是達(dá)內(nèi)科技給大家整理的關(guān)于ajva開(kāi)發(fā)出現(xiàn)異常時(shí)處理的小技巧了,在開(kāi)發(fā)的時(shí)候掌握好這些小技巧的話(huà)是可以避免很多的bug的。如果說(shuō)你想要學(xué)習(xí)java的話(huà)那么達(dá)內(nèi)科技?xì)g迎大家來(lái)我們公司進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽(tīng)資格按鈕來(lái)獲取我們的java課程免費(fèi)試聽(tīng)資格,在試聽(tīng)中可以更加深入的了解達(dá)內(nèi)科技。

電話(huà)咨詢(xún)

電話(huà)咨詢(xún)

咨詢(xún)電話(huà):
4008-569-579
回到頂部

回到頂部