IT培訓(xùn)網(wǎng)
IT在線(xiàn)學(xué)習(xí)
在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(Exception e){} 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中有一類(lèi)異常叫做運(yùn)行時(shí)異常(RuntimeException),這類(lèi)異常情況我們可以不強(qiáng)制使用try catch進(jìn)行捕獲程序也可以編譯執(zhí)行,比如空指針異;蛘邤(shù)組越界的異常,這種情況,如果在程序沒(méi)有遇到這種情況的時(shí)候,程序正常執(zhí)行,但是當(dāng)程序遇到這些情況,程序就會(huì)報(bào)錯(cuò)了。還有另一類(lèi)的異常非運(yùn)行時(shí)異常,這類(lèi)異常需要我們需要進(jìn)行try catch進(jìn)行捕獲處理,否則的話(huà)程序不可編譯,在編譯的時(shí)候就會(huì)報(bào)錯(cuò),例如文件操作的時(shí)候,就屬于這類(lèi)的異常。
在我們編碼的過(guò)程中,有時(shí)候不想在當(dāng)前模塊或者方法里面處理異常,則我們可以將異常往上拋,也就是將異常拋給調(diào)用我們這個(gè)方法的那個(gè)模塊,在那個(gè)模塊中進(jìn)行異常的處理,我們可以使用關(guān)鍵字throws關(guān)鍵字將異常拋給上一級(jí),基本的語(yǔ)法格式是:public void fun() throws IOException {},這樣我們就不需要強(qiáng)制在當(dāng)前方法中進(jìn)行try catch處理。
>>本文地址:http://liujunjsxg.cn/zhuanye/2020/48257.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢(xún)/試聽(tīng)07月15日Python+人工智能
咨詢(xún)/試聽(tīng)07月15日Web前端
咨詢(xún)/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢(xún)/試聽(tīng)07月15日大數(shù)據(jù)
咨詢(xún)/試聽(tīng)07月15日Java
咨詢(xún)/試聽(tīng)07月15日Python+人工智能
咨詢(xún)/試聽(tīng)07月15日Web前端
咨詢(xún)/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢(xún)/試聽(tīng)07月15日大數(shù)據(jù)
咨詢(xún)/試聽(tīng)