欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java拋出異常的幾種情況小結(jié)

 更新時(shí)間:2021年10月01日 09:09:07   作者:微微一笑滿城空  
這篇文章主要介紹了java拋出異常的幾種情況小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 編譯錯(cuò)誤

//代碼1
public static void test() throws Exception  {
 
    throw new Exception("參數(shù)越界"); 
    System.out.println("異常后"); //編譯錯(cuò)誤,「無(wú)法訪問(wèn)的語(yǔ)句」
}

2.可以執(zhí)行

//代碼2
try{
    throw new Exception("參數(shù)越界"); 
}catch(Exception e) {
    e.printStackTrace();
}
System.out.println("異常后");//可以執(zhí)行

3. 拋出異常,不執(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)的異常,是非受檢異常,如NullPointerException、IndexOutOfBoundsException等。由于這類(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到程序throw的RuntimeException,然后停止線程,打印異常。
  • 非運(yùn)行時(shí)異常是RuntimeException以外的異常,類(lèi)型上都屬于Exception類(lèi)及其子類(lèi),是受檢異常。非運(yùn)行時(shí)異常必須進(jìn)行處理(捕獲或向上拋出),如果不處理,程序?qū)⒊霈F(xiàn)編譯錯(cuò)誤。一般情況下,API中寫(xiě)了throws的Exception都不是RuntimeException。

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

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

Java中異常問(wèn)題(異常拋出后是否繼續(xù)執(zhí)行的問(wèn)題)

public static void test() throws Exception  {
        throw new Exception("參數(shù)越界");
        System.out.println("異常后"); //編譯錯(cuò)誤,「無(wú)法訪問(wèn)的語(yǔ)句」
    }
//代碼2
//異常被捕獲,日志打印了異常,代碼繼續(xù)執(zhí)行
        try{
            throw new Exception("參數(shù)越界");
        }catch(Exception e) {
            e.printStackTrace();
        }
        System.out.println("異常后");//可以執(zhí)行
//psvm   快捷鍵
    public static void main(String[] args) {
        try {
            test();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public static void test() throws Exception  {
        //代碼3
        if(true) {
            throw new Exception("參數(shù)越界");
        }
        System.out.println("異常后"); //拋出異常,不會(huì)執(zhí)行
    }
public static void test() throws Exception  {
        //代碼4
        try {
            int i=1/0;
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("代碼執(zhí)行異常后打印并拋出異常提示");
        }
        System.out.println("異常后"); //拋出異常,不會(huì)執(zhí)行
    }   
 
//打印日志
java.lang.ArithmeticException: / by zero
 at zmc.eter.etern.text.text.test(text.java:23)
 at zmc.eter.etern.text.text.main(text.java:14)
java.lang.Exception: 代碼執(zhí)行異常后打印并拋出異常提示
 at zmc.eter.etern.text.text.test(text.java:26)
 at zmc.eter.etern.text.text.main(text.java:14)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 利用JavaMail發(fā)送HTML模板郵件

    利用JavaMail發(fā)送HTML模板郵件

    這篇文章主要為大家詳細(xì)介紹了利用JavaMail發(fā)送HTML模板郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java創(chuàng)建多線程的幾種方式實(shí)現(xiàn)

    Java創(chuàng)建多線程的幾種方式實(shí)現(xiàn)

    這篇文章主要介紹了Java創(chuàng)建多線程的幾種方式實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java常見(jiàn)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

    Java常見(jiàn)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了Java常見(jiàn)數(shù)據(jù)結(jié)構(gòu)面試題,帶有答案及解釋?zhuān)M麑?duì)廣大的程序愛(ài)好者有所幫助,同時(shí)祝大家有一個(gè)好成績(jī),需要的朋友可以參考下,希望可以幫助到你
    2021-07-07
  • 詳解通過(guò)JDBC進(jìn)行簡(jiǎn)單的增刪改查(以MySQL為例)

    詳解通過(guò)JDBC進(jìn)行簡(jiǎn)單的增刪改查(以MySQL為例)

    JDBC是用于執(zhí)行SQL語(yǔ)句的一類(lèi)Java API,通過(guò)JDBC使得我們可以直接使用Java編程來(lái)對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行操作。通過(guò)封裝,可以使開(kāi)發(fā)人員使用純Java API完成SQL的執(zhí)行。
    2017-01-01
  • spring mvc DispatcherServlet之前端控制器架構(gòu)詳解

    spring mvc DispatcherServlet之前端控制器架構(gòu)詳解

    這篇文章主要為大家詳細(xì)介紹了spring mvc DispatcherServlet之前端控制器架構(gòu),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • java讀寫(xiě)ini文件、FileOutputStream問(wèn)題

    java讀寫(xiě)ini文件、FileOutputStream問(wèn)題

    這篇文章主要介紹了java讀寫(xiě)ini文件、FileOutputStream問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Servlet開(kāi)發(fā)JavaWeb工程示例詳解

    Servlet開(kāi)發(fā)JavaWeb工程示例詳解

    這篇文章主要介紹了Servlet開(kāi)發(fā)JavaWeb工程示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解SpringCloud微服務(wù)架構(gòu)之Hystrix斷路器

    詳解SpringCloud微服務(wù)架構(gòu)之Hystrix斷路器

    本篇文章主要介紹了詳解SpringCloud微服務(wù)架構(gòu)之Hystrix斷路器,Hystrix是一個(gè)庫(kù),通過(guò)添加延遲容差和容錯(cuò)邏輯來(lái)幫助您控制這些分布式服務(wù)之間的交互,有興趣的可以了解一下
    2018-01-01
  • java解決動(dòng)態(tài)配置字段需求問(wèn)題

    java解決動(dòng)態(tài)配置字段需求問(wèn)題

    這篇文章主要介紹了java解決動(dòng)態(tài)配置字段需求問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java日期時(shí)間處理問(wèn)題(從Date、Calendar到SimpleDateFormat)

    Java日期時(shí)間處理問(wèn)題(從Date、Calendar到SimpleDateFormat)

    這篇文章主要介紹了Java日期時(shí)間處理深度解析(從Date、Calendar到SimpleDateFormat),我們?cè)敿?xì)討論了Java中的日期和時(shí)間處理,包括Date、Calendar和SimpleDateFormat類(lèi)的使用,以及Java?8引入的新的日期時(shí)間API的優(yōu)勢(shì),需要的朋友可以參考下
    2024-08-08

最新評(píng)論