freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java-異常処理-資料下載頁(yè)

2025-08-04 09:08本頁(yè)面
  

【正文】 Handle runtime exception here.在testRuntime()方法中,我們刻意制造了一個(gè)除零錯(cuò)異常,它屬于ArithmeticException異常類,而ArithmeticException類是RuntimeException類的子類。在方法聲明的throws子句中,我們并沒有聲明ArithmeticException或RuntimeException,而是聲明了自己的一個(gè)異常類MyArithException。這樣,方法testRuntime()的調(diào)用者就不得不處理這個(gè)異常。在testRutime()方法內(nèi)的try…catch塊中,我們捕獲了除零錯(cuò)的異常,但是在catch塊中沒有對(duì)它進(jìn)行任何處理,而只是重新拋出了一個(gè)MyArithException類的異常。 finally子句當(dāng)Java程序拋出一個(gè)異常的時(shí)候,它會(huì)停止處理這個(gè)方法中剩下的代碼,而尋找捕獲異常的catch子句或者直接不正常退出方法。這樣,如果在方法中已經(jīng)分配了一些資源,或者打開了文件,在產(chǎn)生異常后就不會(huì)釋放資源或關(guān)閉文件。前面我們已經(jīng)介紹了一種解決辦法,即捕獲這個(gè)異常,在處理代碼中釋放這些資源,然后在重新拋出異常。但是這樣做有兩個(gè)缺點(diǎn):1. 需要程序員在兩個(gè)地方書寫同樣的代碼,以保證無(wú)論程序正常結(jié)束還是由于產(chǎn)生異常而不正常結(jié)束都會(huì)執(zhí)行這段做清除工作的代碼。2. 在異常處理中寫這些代碼,又將正常代碼和錯(cuò)誤處理的代碼混在了一起。因此,這樣做會(huì)導(dǎo)致程序冗余而且結(jié)構(gòu)不清晰。Java中考慮到了這一點(diǎn),提供了更好的處理辦法,那就是使用finally子句。finally子句的形式如下:try{//正常執(zhí)行的代碼,可能產(chǎn)生異常....}catch(異常類1 e){//異常類1的處理代碼......}catch(異常類2 e){//異常類2的處理代碼......}......catch(異常類n e){//異常類n的處理代碼......}finally{//執(zhí)行清除工作的語(yǔ)句.....}無(wú)論在try塊中是否產(chǎn)生異常,也不管產(chǎn)生的異常是否會(huì)被捕獲,finally中的語(yǔ)句最終都會(huì)被執(zhí)行。具體的講,在以下情況下finally子句中的語(yǔ)句將會(huì)被執(zhí)行:l try塊中的語(yǔ)句沒有產(chǎn)生異常。在這種情況下,Java首先執(zhí)行try塊中的所有的語(yǔ)句,然后執(zhí)行finally子句中的代碼,最后執(zhí)行try...catch..finally塊后面的語(yǔ)句。l try塊中的語(yǔ)句產(chǎn)生了異常,而且此異常在方法內(nèi)被捕獲。在這種情況下,Java首先執(zhí)行try塊中的語(yǔ)句,直到產(chǎn)生異常處,然后跳過此try塊中剩下的語(yǔ)句,執(zhí)行捕獲此異常的catch子句的處理代碼;然后執(zhí)行finally子句中的代碼。如果catch子句中沒有重新拋出異常,那么Java將執(zhí)行try...catch...finally塊后面的語(yǔ)句。如果在catch子句又重新拋出了異常,那么Java將這個(gè)異常拋出給方法的調(diào)用者。l try塊中產(chǎn)生了異常,而此異常在方法內(nèi)沒有被捕獲。在這種情況下,Java將執(zhí)行try塊中的代碼直到產(chǎn)生異常,然后跳過try塊中的代碼而轉(zhuǎn)去執(zhí)行finally子句中的代碼,最后將異常拋出給方法的調(diào)用者。至此,我們已經(jīng)基本講完了關(guān)于Java中異常處理。由于異常使用起來是如此的方便,以至于在很多情況下程序員可能會(huì)濫用異常。然而沒有白揀的便宜,使用異常處理也不例外。使用異常處理會(huì)降低程序運(yùn)行的速度,如果您在程序中過多的使用異常處理,您的程序的執(zhí)行速度會(huì)得到顯著的降低。在這里我們給出幾點(diǎn)建議,來幫助您掌握好使用異常處理的尺度。1. 在可以使用簡(jiǎn)單的測(cè)試就可以完成的檢查中,不要使用異常來代替它。例如:if( aref!=null){//使用aref引用對(duì)象 ...}2. 不要過細(xì)的使用異常。您最好不要到處使用異常,更不要在循環(huán)體內(nèi)使用異常處理,您可以將它包裹在循環(huán)體外面。例如:3. 不要捕獲了一個(gè)異常而又不對(duì)它做任何的處理。如例下所示:try{//正常執(zhí)行的代碼......}catch(Exception e){}在Java類庫(kù)中有些方法會(huì)產(chǎn)生異常,而您在自己方法中又不愿意處理它(比如您認(rèn)為它的發(fā)生概率很小,不必為小概率事件操心),但是您也不希望將它放到您的方法的throws子句中(因?yàn)槟菢铀姓{(diào)用這個(gè)方法的方法都要處理這個(gè)異常),這時(shí)您可能會(huì)采取上面的處理方法,將異?!把┎亍逼饋?。這樣做是不負(fù)責(zé)任的。俗話說,“不怕一萬(wàn),就怕萬(wàn)一”,如果這個(gè)異常發(fā)生了,而您的程序又沒有處理它,這樣一個(gè)小小的疏忽就可能給用戶帶來很大的損失。4. 將異常保留給方法的調(diào)用者并非不好的做法。您可能習(xí)慣于在方法內(nèi)部處理所有的異常,而實(shí)際上,對(duì)于有些異常,將其交給方法的調(diào)用者去處理是一種更好的處理辦法。本章小結(jié)經(jīng)過本章的學(xué)習(xí),相信您對(duì)于Java中的異常處理會(huì)有深入的了解,并能夠很好的運(yùn)用。本章的知識(shí)點(diǎn)不多也不復(fù)雜,異常的處理無(wú)非是try…catch,異常的拋出就是用簡(jiǎn)單的throw語(yǔ)句,在方法的聲明中指定異常只要在其throws子句中說明即可。需要把握的是幾個(gè)尺度:l 是否使用異常的尺度;l 在哪里處理異常的尺度。是在方法中處理,還是留給方法的調(diào)用者去處理;還要注意在發(fā)生異常時(shí)資源的釋放,有兩種方法:1. 在catch塊中釋放資源并重新拋出異常2. 使用try…catch…finally塊,在finally塊中統(tǒng)一釋放資源顯然,使用后者更方便一些。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1