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

Java中try、catch的使用方法

 更新時(shí)間:2020年06月23日 10:58:45   作者:Locpeng  
這篇文章主要介紹了Java中try、catch的使用方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Java中有兩種處理異常的方式,分別是用throws拋出異常、用try、catch捕獲異常。

try-catch

在Java

try-catch語(yǔ)句的語(yǔ)法格式:

try{
	//代碼塊
}catch(Exception1 e){
	//拋出異常后所要進(jìn)行的操作
}

當(dāng)try語(yǔ)句當(dāng)中捕獲到異常時(shí),會(huì)將異常拋出到catch語(yǔ)句中匹配異常類(lèi)型,當(dāng)異常和catch后面的異常類(lèi)型相匹配時(shí),則catch語(yǔ)句將會(huì)執(zhí)行。

舉個(gè)最基礎(chǔ)的例子,除數(shù)不能為0

try中的異常與catch后面的異常類(lèi)型匹配的情況:

try{
	int i = 1/0;//發(fā)生異常立即跳往catch語(yǔ)句中執(zhí)行,不執(zhí)行異常代碼下面的代碼
	System.out.println("輸出結(jié)果為:" + i);
}catch(ArithmeticException e){
	e.printStackTrace();
	System.out.println("編譯報(bào)錯(cuò),除數(shù)不能為0");
}

輸出結(jié)果:

上面代碼的輸出結(jié)果

try中拋出的異常與catch后面的異常類(lèi)型不匹配的情況:

try{
	int i = 1/0;//發(fā)生異常立即跳往catch語(yǔ)句中執(zhí)行,不執(zhí)行異常代碼下面的代碼
	System.out.println("輸出結(jié)果為:" + i);
}catch(NullPointerException e){
	e.printStackTrace();
	System.out.println("編譯報(bào)錯(cuò),除數(shù)不能為0");
	//因?yàn)楫惓n?lèi)型不匹配所以該catch語(yǔ)句并未執(zhí)行
}

輸出結(jié)果:

在這里插入圖片描述

一個(gè)try語(yǔ)句可以接多個(gè)catch語(yǔ)句

當(dāng)有多個(gè)catch語(yǔ)句時(shí),try部分的語(yǔ)句如果發(fā)生異常,就會(huì)在依次在各個(gè)catch語(yǔ)句中試圖匹配異常類(lèi)型。

try{
			int i = 1/0;//發(fā)生異常立即跳往catch語(yǔ)句中執(zhí)行,不執(zhí)行異常代碼下面的代碼
			System.out.println("輸出結(jié)果為:" + i);
		}catch(ArithmeticException e){
			e.printStackTrace();
			System.out.println("運(yùn)算條件異常");
			//try語(yǔ)句捕獲的異常與該catch語(yǔ)句后的異常相匹配,所以執(zhí)行該catch語(yǔ)句
		}catch(NullPointerException e){
			e.printStackTrace();
			System.out.println("空指針異常");
			//try語(yǔ)句捕獲的異常與該catch語(yǔ)句后的異常不匹配,所以不執(zhí)行該catch語(yǔ)句
		}

JDK1.7之后還有一種不常用的寫(xiě)法:

try{
			int i = 1/0;//發(fā)生異常立即跳往catch語(yǔ)句中執(zhí)行,不執(zhí)行異常代碼下面的代碼
			System.out.println("輸出結(jié)果為:" + i);
		}catch (NullPointerException | ArithmeticException e) {
      e.printStackTrace();

      if (e instanceof NullPointerException)
        System.out.println("空指針異常");
      if (e instanceof ArithmeticException)
        System.out.println("運(yùn)算條件異常");
    }

這種寫(xiě)法需要通過(guò)instanceof 進(jìn)行判斷具體的異常類(lèi)型。

兩種寫(xiě)法的輸出都是一樣的:

在這里插入圖片描述

在catch內(nèi)部,通常下面的方法輸出異常信息:
getMessage() 返回一個(gè)字符串對(duì)發(fā)生的異常進(jìn)行描述。
printStackTrace() :打印異常信息出錯(cuò)的位置及原因。

到此這篇關(guān)于Java中try、catch的使用的文章就介紹到這了,更多相關(guān)Java中try catch的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入探討Java多線(xiàn)程中的volatile變量

    深入探討Java多線(xiàn)程中的volatile變量

    這篇文章主要為大家詳細(xì)并深入的探討Java多線(xiàn)程中的volatile變量,volatile用來(lái)確保將變量的更新操作通知到其他線(xiàn)程,保證了新值能立即同步到主內(nèi)存,以及每次使用前立即從主內(nèi)存刷新,感興趣的小伙伴們可以參考一下
    2016-02-02
  • MyBatis入門(mén)初體驗(yàn)之使用大全(2)

    MyBatis入門(mén)初體驗(yàn)之使用大全(2)

    這篇文章主要介紹了MyBatis入門(mén)初體驗(yàn)之使用大全(2)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • Java向上轉(zhuǎn)型和向下轉(zhuǎn)型實(shí)例解析

    Java向上轉(zhuǎn)型和向下轉(zhuǎn)型實(shí)例解析

    這篇文章主要介紹了Java向上轉(zhuǎn)型和向下轉(zhuǎn)型實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring中的BeanFactory與FactoryBean區(qū)別詳解

    Spring中的BeanFactory與FactoryBean區(qū)別詳解

    這篇文章主要介紹了Spring中的BeanFactory與FactoryBean區(qū)別詳解,BeanFactory是一個(gè)接口,它是spring中的一個(gè)工廠(chǎng),FactoryBean也是一個(gè)接口,實(shí)現(xiàn)了3個(gè)方法,通過(guò)重寫(xiě)其中方法自定義生成bean,需要的朋友可以參考下
    2024-01-01
  • Java并發(fā)編程之Fork/Join框架詳解

    Java并發(fā)編程之Fork/Join框架詳解

    這篇文章主要介紹了Java并發(fā)編程之Fork/Join框架詳解,Fork/Join框架是Java7提供的一個(gè)用于并行執(zhí)行任務(wù)的框架,是一個(gè)把大任務(wù)分割成若干個(gè)小任務(wù),最終匯總每個(gè)小任務(wù)結(jié)果后得到大任務(wù)結(jié)果的框架,需要的朋友可以參考下
    2023-12-12
  • java 串口通信詳細(xì)及簡(jiǎn)單實(shí)例

    java 串口通信詳細(xì)及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了java 串口通信詳細(xì)及簡(jiǎn)單實(shí)例的相關(guān)資料,在開(kāi)發(fā)硬件與軟件結(jié)合的時(shí)候,就會(huì)用到串口,需要的朋友可以參考下
    2017-01-01
  • 創(chuàng)建一個(gè)Java的不可變對(duì)象

    創(chuàng)建一個(gè)Java的不可變對(duì)象

    這篇文章主要介紹了創(chuàng)建一個(gè)Java的不可變對(duì)象,一個(gè)類(lèi)的對(duì)象在通過(guò)構(gòu)造方法創(chuàng)建后如果狀態(tài)不會(huì)再被改變,那么它就是一個(gè)不可變(immutable)類(lèi)。它的所有成員變量的賦值僅在構(gòu)造方法中完成,不會(huì)提供任何 setter 方法供外部類(lèi)去修改,需要的朋友可以參考下
    2021-11-11
  • SpringBoot?Security使用MySQL實(shí)現(xiàn)驗(yàn)證與權(quán)限管理

    SpringBoot?Security使用MySQL實(shí)現(xiàn)驗(yàn)證與權(quán)限管理

    安全管理是軟件系統(tǒng)必不可少的的功能。根據(jù)經(jīng)典的“墨菲定律”——凡是可能,總會(huì)發(fā)生。如果系統(tǒng)存在安全隱患,最終必然會(huì)出現(xiàn)問(wèn)題,這篇文章主要介紹了SpringBoot安全管理Spring?Security基本配置
    2022-11-11
  • Log4j新手快速入門(mén)教程

    Log4j新手快速入門(mén)教程

    這篇文章主要給大家介紹了關(guān)于Log4j新手入門(mén)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Log4j具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 自定義一個(gè)簡(jiǎn)單的JDBC連接池實(shí)現(xiàn)方法

    自定義一個(gè)簡(jiǎn)單的JDBC連接池實(shí)現(xiàn)方法

    下面小編就為大家分享一篇自定義一個(gè)簡(jiǎn)單的JDBC連接池實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12

最新評(píng)論