更新時(shí)間:2020-04-08 13:44:44 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2672次
在Java編程中,我們或多或少地會(huì)遇到一些程序異常的情況,為了不影響程序的正常執(zhí)行,我們需要在程序發(fā)生異常的情況下,進(jìn)行一些操作來(lái)防止造成更大的損失。例如在我們平時(shí)的除法運(yùn)算中,被除數(shù)是不能為0的,如果為0就會(huì)造成異常,同樣在計(jì)算機(jī)程序中,如果除以一個(gè)為0的數(shù)字,那么這個(gè)語(yǔ)句就會(huì)是一個(gè)錯(cuò)誤的語(yǔ)句,這樣就會(huì)造成程序異常,后面的程序就會(huì)執(zhí)行不下去,所以Java使用異常機(jī)制可以處理這樣的情況,在出現(xiàn)這種情況之后,把這個(gè)異常捕獲進(jìn)行處理,從而不會(huì)影響后面的程序。
在Java中使用try{可能發(fā)生異常的程序模塊}catch(Exceptione){}finally{}的語(yǔ)法規(guī)范來(lái)進(jìn)行異常的處理,將可能發(fā)生異常的地方放入到try的模塊中,當(dāng)模塊中的語(yǔ)句確實(shí)發(fā)生了異常之后,就會(huì)被后面的catch進(jìn)行捕獲,然后我們可以在catch模塊中進(jìn)行異常的處理,處理完成之后,程序會(huì)繼續(xù)往下進(jìn)行,不會(huì)影響到后面的處理。
有時(shí)候在我們捕獲了異常之后,由于try里面的異常語(yǔ)句之后還有其他的語(yǔ)句需要執(zhí)行,比如我們開(kāi)始打開(kāi)了文件,但是在讀取文件的時(shí)候發(fā)生了異常,但是我們需要在最后將文件關(guān)閉,否則文件就會(huì)被一直占用,這時(shí)候我們可以在finall模塊中將文件進(jìn)行關(guān)閉。
在Java中有一類異常叫做運(yùn)行時(shí)異常(RuntimeException),這類異常情況我們可以不強(qiáng)制使用trycatch進(jìn)行捕獲程序也可以編譯執(zhí)行,比如空指針異常或者數(shù)組越界的異常,這種情況,如果在程序沒(méi)有遇到這種情況的時(shí)候,程序正常執(zhí)行,但是當(dāng)程序遇到這些情況,程序就會(huì)報(bào)錯(cuò)了。還有另一類的異常非運(yùn)行時(shí)異常,這類異常需要我們需要進(jìn)行trycatch進(jìn)行捕獲處理,否則的話程序不可編譯,在編譯的時(shí)候就會(huì)報(bào)錯(cuò),例如文件操作的時(shí)候,就屬于這類的異常。
在我們編碼的過(guò)程中,有時(shí)候不想在當(dāng)前模塊或者方法里面處理異常,則我們可以將異常往上拋,也就是將異常拋給調(diào)用我們這個(gè)方法的那個(gè)模塊,在那個(gè)模塊中進(jìn)行異常的處理,我們可以使用關(guān)鍵字throws關(guān)鍵字將異常拋給上一級(jí),基本的語(yǔ)法格式是:publicvoidfun()throwsIOException{},這樣我們就不需要強(qiáng)制在當(dāng)前方法中進(jìn)行trycatch處理。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java文件空指針異常處理”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743