最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談java中異常拋出后代碼是否會(huì)繼續(xù)執(zhí)行

 更新時(shí)間:2016年10月04日 09:21:44   作者:Alent  
這篇文章主要給大家介紹了java中異常拋出后代碼是否會(huì)繼續(xù)執(zhí)行,文章通過(guò)幾種情況的代碼示例給大家詳細(xì)分析了這個(gè)情況,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。

問(wèn)題

今天遇到一個(gè)問(wèn)題,在下面的代碼中,當(dāng)拋出運(yùn)行時(shí)異常后,后面的代碼還會(huì)執(zhí)行嗎,是否需要在異常后面加上return語(yǔ)句呢?

public void add(int index, E element){
  if(size >= elements.length) {
    throw new RuntimeException("順序表已滿(mǎn),無(wú)法添加"); 
    //return; //需要嗎?
  }
  ....
}


為了回答這個(gè)問(wèn)題,我編寫(xiě)了幾段代碼測(cè)試了一下,結(jié)果如下:

//代碼1
public static void test() throws Exception {

  throw new Exception("參數(shù)越界"); 
  System.out.println("異常后"); //編譯錯(cuò)誤,「無(wú)法訪問(wèn)的語(yǔ)句」
}
//代碼2
try{
  throw new Exception("參數(shù)越界"); 
}catch(Exception e) {
  e.printStackTrace();
}
System.out.println("異常后");//可以執(zhí)行
//代碼3
if(true) {
  throw new Exception("參數(shù)越界"); 
}
System.out.println("異常后"); //拋出異常,不會(huì)執(zhí)行

總結(jié):

若一段代碼前有異常拋出,并且這個(gè)異常沒(méi)有被捕獲,這段代碼將產(chǎn)生編譯時(shí)錯(cuò)誤「無(wú)法訪問(wèn)的語(yǔ)句」。如代碼1

若一段代碼前有異常拋出,并且這個(gè)異常被try...catch所捕獲,若此時(shí)catch語(yǔ)句中沒(méi)有拋出新的異常,則這段代碼能夠被執(zhí)行,否則,同第1條。如代碼2

若在一個(gè)條件語(yǔ)句中拋出異常,則程序能被編譯,但后面的語(yǔ)句不會(huì)被執(zhí)行。如代碼3

另外總結(jié)一下運(yùn)行時(shí)異常與非運(yùn)行時(shí)異常的區(qū)別:

運(yùn)行時(shí)異常是RuntimeException類(lèi)及其子類(lèi)的異常,是非受檢異常,如NullPointerExceptionIndexOutOfBoundsException等。由于這類(lèi)異常要么是系統(tǒng)異常,無(wú)法處理,如網(wǎng)絡(luò)問(wèn)題;

要么是程序邏輯錯(cuò)誤,如空指針異常;JVM必須停止運(yùn)行以改正這種錯(cuò)誤,所以運(yùn)行時(shí)異??梢圆贿M(jìn)行處理(捕獲或向上拋出,當(dāng)然也可以處理),而由JVM自行處理。Java Runtime會(huì)自動(dòng)catch到程序throwRuntimeException,然后停止線程,打印異常。

非運(yùn)行時(shí)異常是RuntimeException以外的異常,類(lèi)型上都屬于Exception類(lèi)及其子類(lèi),是受檢異常。非運(yùn)行時(shí)異常必須進(jìn)行處理(捕獲或向上拋出),如果不處理,程序?qū)⒊霈F(xiàn)編譯錯(cuò)誤。一般情況下,API中寫(xiě)了throwsException都不是RuntimeException。

常見(jiàn)運(yùn)行時(shí)異常:

常見(jiàn)非運(yùn)行時(shí)異常:

 

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • BeanFactory和FactoryBean的區(qū)別示例詳解

    BeanFactory和FactoryBean的區(qū)別示例詳解

    這篇文章主要為大家介紹了BeanFactory和FactoryBean的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • JAVA對(duì)字符串進(jìn)行32位MD5加密的實(shí)踐

    JAVA對(duì)字符串進(jìn)行32位MD5加密的實(shí)踐

    本文主要介紹了JAVA對(duì)字符串進(jìn)行32位MD5加密的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • mybatisPlus自定義批量新增的實(shí)現(xiàn)代碼

    mybatisPlus自定義批量新增的實(shí)現(xiàn)代碼

    這篇文章主要介紹了mybatisPlus自定義批量新增的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 解決springboot自定義配置Boolean屬性不能生效的問(wèn)題

    解決springboot自定義配置Boolean屬性不能生效的問(wèn)題

    這篇文章主要介紹了解決springboot自定義配置Boolean屬性不能生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法

    java獲取網(wǎng)絡(luò)圖片上傳到OSS的方法

    這篇文章主要為大家詳細(xì)介紹了java獲取網(wǎng)絡(luò)圖片上傳到OSS,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳解Java發(fā)送HTTP請(qǐng)求

    詳解Java發(fā)送HTTP請(qǐng)求

    這篇文章主要介紹了Java發(fā)送HTTP請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring?Cloud?Ribbon的使用原理解析

    Spring?Cloud?Ribbon的使用原理解析

    現(xiàn)在Java非常流行微服務(wù),也就是所謂的面向服務(wù)開(kāi)發(fā),將一個(gè)項(xiàng)目拆分成了多個(gè)項(xiàng)目,其優(yōu)點(diǎn)有很多,其中一個(gè)優(yōu)點(diǎn)就是:將服務(wù)拆分成一個(gè)一個(gè)微服務(wù)后,我們很容易的來(lái)針對(duì)性的進(jìn)行集群部署,這篇文章主要介紹了Spring?Cloud?Ribbon的使用詳解,需要的朋友可以參考下
    2022-07-07
  • Java深入探究關(guān)鍵字abstract的使用

    Java深入探究關(guān)鍵字abstract的使用

    如果一個(gè)方法使用 abstract 來(lái)修飾,則說(shuō)明該方法是抽象方法,抽象方法只有聲明沒(méi)有實(shí)現(xiàn)。需要注意的是 abstract 關(guān)鍵字只能用于普通方法,不能用于 static 方法或者構(gòu)造方法中
    2022-05-05
  • JAVA實(shí)現(xiàn)賬戶(hù)取款和存款操作

    JAVA實(shí)現(xiàn)賬戶(hù)取款和存款操作

    這篇文章主要介紹了JAVA實(shí)現(xiàn)賬戶(hù)取款和存款操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例

    java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例

    這篇文章主要介紹了java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例,需要的朋友可以參考下
    2014-05-05

最新評(píng)論

丽江市| 札达县| 平遥县| 玉树县| 论坛| 嘉义市| 若羌县| 乌兰县| 德昌县| 乌拉特前旗| 绥化市| 嵊泗县| 黔东| 石渠县| 高青县| 建昌县| 江川县| 那坡县| 成武县| 布尔津县| 同心县| 平阴县| 连城县| 弥勒县| 上思县| 明星| 修武县| 新营市| 石台县| 基隆市| 图们市| 精河县| 霍林郭勒市| 南宁市| 庄浪县| 石台县| 咸宁市| 罗平县| 裕民县| 襄垣县| 天镇县|