這篇文章主要講解了“Java處理異常的方法有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Java處理異常的方法有哪些”吧!
渾江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!一、異常的分類
Throwable是所有異常的超類,下一級(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í)異常,這類異常在編譯期間不強(qiáng)制代碼捕捉,但是可能在在 JVM 運(yùn)行期間拋出異常;出現(xiàn)此類異常,通常是代碼的問(wèn)題,所以需要修改程序避免這類異常。常見(jiàn)的運(yùn)行時(shí)異常,比如:NullPointerException、ClassCastException 等等。
CheckedException:檢查異常,這種異常發(fā)生在編譯階段,Java 編譯器會(huì)強(qiáng)制代碼去捕獲和處理此類異常;比如: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是用在方法上,后面跟異常類;
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)銷。
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{...}中寫return,因?yàn)閠ry{...} 在執(zhí)行return之前執(zhí)行 finally{...} ,如果 finally{...}中有return,那么將不再執(zhí)行try{...}中的return。
感謝各位的閱讀,以上就是“Java處理異常的方法有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Java處理異常的方法有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
分享題目:Java處理異常的方法有哪些-創(chuàng)新互聯(lián)
分享路徑:http://aaarwkj.com/article22/cchejc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、企業(yè)網(wǎng)站制作、面包屑導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容