2021-3-25 前端達(dá)人
異常包括的主要關(guān)鍵字有try{}catch(){}finally{} throw和throws五個(gè)關(guān)鍵字 。
下面我們來(lái)細(xì)說(shuō)一下這五個(gè)關(guān)鍵字分別有什么用。
try catch關(guān)鍵字 這兩個(gè)關(guān)鍵字是連用的
1.如果try塊中的語(yǔ)句正常執(zhí)行完畢,不會(huì)發(fā)生異常則catch塊中的語(yǔ)句都將會(huì)被忽略。
2.如果try語(yǔ)句塊在執(zhí)行中遇到異常。并且這個(gè)異常與catch中聲明的異常類(lèi)型相匹配,那么在try塊中其余剩下的代碼都將被忽略。
3.如果try語(yǔ)句塊在執(zhí)行過(guò)程中遇到異常,而拋出的異常在catch塊中沒(méi)有被聲明,那么程序立刻退出。
finally關(guān)鍵字這個(gè)關(guān)鍵字中的代碼總能被執(zhí)行(怎么我都要執(zhí)行 )
1.只要try中所有語(yǔ)句正常執(zhí)行完畢,那么finally塊就會(huì)被執(zhí)行。
2.如果try語(yǔ)句塊在執(zhí)行過(guò)程中碰到異常,無(wú)論這種異常能否被catch塊捕獲到,都將執(zhí)行finally塊中的代碼。
注:try—catch—finally結(jié)構(gòu)中try塊是必需的catch和finally塊為可選,但兩者至少須出現(xiàn)其中之一。
如果catch中存在return,finally也會(huì)執(zhí)行只不過(guò)執(zhí)行的順序有一定差異 ,先執(zhí)行catch里的代碼塊,之后執(zhí)行finally里的代碼塊,最后執(zhí)行return語(yǔ)句。
throw關(guān)鍵字拋出異常
throws關(guān)鍵字聲明捕捉異常
那么throw和throws有什么區(qū)別呢
1.作用不同:throw用于在程序中拋出異常;throws用于聲明在該方法內(nèi)拋出異常。
2.使用的位置不同:throw位于方法體內(nèi)部,可以作為單獨(dú)語(yǔ)句使用;throws必須跟在方法參數(shù)列表的后面,不能單獨(dú)使用。
3.內(nèi)容不同:throw拋出一個(gè)異常對(duì)象,而且只能有一個(gè);throws后面跟異常類(lèi),而且可以跟多個(gè)異常類(lèi)。
知道了這五個(gè)關(guān)鍵字的用法下面我們來(lái)說(shuō)一下幾個(gè)常用的異常代碼:
1.ArithmeticException 試圖除以0。
2.NullpointerException 當(dāng)程序訪問(wèn)一個(gè)空對(duì)象的成員變量或方法,訪問(wèn)一個(gè)空數(shù)組的成員時(shí)發(fā)生。
3.ClassCastException 發(fā)生多態(tài)后,吐過(guò)強(qiáng)制轉(zhuǎn)換的并不是父類(lèi)的子類(lèi)時(shí)發(fā)生。編譯的時(shí)候可以通過(guò),以為編譯的時(shí)候并不會(huì)檢查類(lèi)型轉(zhuǎn)換的問(wèn)題。
4.ArraylndwxOutOfBoundsException 訪問(wèn)的元素下標(biāo)超過(guò)數(shù)組長(zhǎng)度
5.NumberFormatException 數(shù)字格式異常。
6.Exception 一般的異常都包括。
轉(zhuǎn)自:csdn
藍(lán)藍(lán)設(shè)計(jì)( www.88yangsc.com )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)
藍(lán)藍(lán)設(shè)計(jì)的小編 http://www.88yangsc.com