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

基于Java中throw和throws的區(qū)別(詳解)

 更新時間:2017年07月28日 08:31:39   投稿:jingxian  
下面小編就為大家?guī)硪黄贘ava中throw和throws的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

系統(tǒng)自動拋出的異常

所有系統(tǒng)定義的編譯和運行異常都可以由系統(tǒng)自動拋出,稱為標(biāo)準(zhǔn)異常,并且 Java 強烈地要求應(yīng)用程序進(jìn)行完整的異常處理,給用戶友好的提示,或者修正后使程序繼續(xù)執(zhí)行。

語句拋出的異常

用戶程序自定義的異常和應(yīng)用程序特定的異常,必須借助于 throws 和 throw 語句來定義拋出異常。

throw是語句拋出一個異常。

語法:throw (異常對象);
throw e;

throws是方法可能拋出異常的聲明。(用在聲明方法時,表示該方法可能要拋出異常)

語法:[(修飾符)](返回值類型)(方法名)([參數(shù)列表])[throws(異常類)]{......}

public void doA(int a) throws Exception1,Exception3{......}

舉例:

throws E1,E2,E3只是告訴程序這個方法可能會拋出這些異常,方法的調(diào)用者可能要處理這些異常,而這些異常E1,E2,E3可能是該函數(shù)體產(chǎn)生的。
throw則是明確了這個地方要拋出這個異常。

如:

void doA(int a) throws Exception1,Exception3{
      try{
         ......

      }catch(Exception1 e){
       throw e;
      }catch(Exception2 e){
       System.out.println("出錯了!");
      }
      if(a!=b)
       throw new Exception3("自定義異常");
}

代碼塊中可能會產(chǎn)生3個異常,(Exception1,Exception2,Exception3)。

如果產(chǎn)生Exception1異常,則捕獲之后再拋出,由該方法的調(diào)用者去處理。

如果產(chǎn)生Exception2異常,則該方法自己處理了(即System.out.println("出錯了!");)。所以該方法就不會再向外拋出Exception2異常了,void doA() throws Exception1,Exception3 里面的Exception2也就不用寫了。

而Exception3異常是該方法的某段邏輯出錯,程序員自己做了處理,在該段邏輯錯誤的情況下拋出異常Exception3,則該方法的調(diào)用者也要處理此異常。

throw語句用在方法體內(nèi),表示拋出異常,由方法體內(nèi)的語句處理。

throws語句用在方法聲明后面,表示再拋出異常,由該方法的調(diào)用者來處理。

throws主要是聲明這個方法會拋出這種類型的異常,使它的調(diào)用者知道要捕獲這個異常。

throw是具體向外拋異常的動作,所以它是拋出一個異常實例。

throws說明你有那個可能,傾向。

throw的話,那就是你把那個傾向變成真實的了。

同時:

1、throws出現(xiàn)在方法函數(shù)頭;而throw出現(xiàn)在函數(shù)體。

2、throws表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這些異常;throw則是拋出了異常,執(zhí)行throw則一定拋出了某種異常。

3、兩者都是消極處理異常的方式(這里的消極并不是說這種方式不好),只是拋出或者可能拋出異常,但是不會由函數(shù)去處理異常,真正的處理異常由函數(shù)的上層調(diào)用處理。

以上這篇基于Java中throw和throws的區(qū)別(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA 多線程之信號量(Semaphore)實例詳解

    JAVA 多線程之信號量(Semaphore)實例詳解

    這篇文章主要介紹了JAVA 多線程之信號量(Semaphore)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • URL @PathVariable 變量的匹配原理分析

    URL @PathVariable 變量的匹配原理分析

    這篇文章主要介紹了URL @PathVariable 變量的匹配原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • mybaits-spring的實現(xiàn)方式

    mybaits-spring的實現(xiàn)方式

    這篇文章主要介紹了mybaits-spring的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java后端實現(xiàn)短鏈接生成功能

    Java后端實現(xiàn)短鏈接生成功能

    短鏈接生成主要在于把指定的接口和參數(shù)實現(xiàn)加密生成比較短的字符串,再進(jìn)行拼接通過指定的域名或者ip實現(xiàn)鏈接的跳轉(zhuǎn),下面我們來看看如何使用Java實現(xiàn)這一功能吧
    2025-03-03
  • SpringBoot整合Netty服務(wù)端的實現(xiàn)示例

    SpringBoot整合Netty服務(wù)端的實現(xiàn)示例

    Netty提供了一套完整的API,用于處理網(wǎng)絡(luò)IO操作,如TCP和UDP套接字,本文主要介紹了SpringBoot整合Netty服務(wù)端的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Java中的強制類型轉(zhuǎn)換 大數(shù)轉(zhuǎn)小數(shù)

    Java中的強制類型轉(zhuǎn)換 大數(shù)轉(zhuǎn)小數(shù)

    這里主要討論一下大數(shù)轉(zhuǎn)小數(shù),比如int類型轉(zhuǎn)short類型。小數(shù)轉(zhuǎn)大數(shù),如short 轉(zhuǎn) int不做討論,需要的朋友可以參考下
    2020-02-02
  • springboot整合mybatis的超詳細(xì)過程(配置模式+注解模式)

    springboot整合mybatis的超詳細(xì)過程(配置模式+注解模式)

    這篇文章主要介紹了springboot整合mybatis的詳細(xì)過程(配置模式+注解模式),這里我使用的是配置模式+注解模式所以需要配置全局文件,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Spring Boot 2.7.6整合redis與低版本的區(qū)別

    Spring Boot 2.7.6整合redis與低版本的區(qū)別

    這篇文章主要介紹了Spring Boot 2.7.6整合redis與低版本的區(qū)別,文中補充介紹了SpringBoot各個版本使用Redis之間的區(qū)別實例講解,需要的朋友可以參考下
    2023-02-02
  • java代碼獲取UUID的實現(xiàn)示例

    java代碼獲取UUID的實現(xiàn)示例

    本文主要介紹了java代碼獲取UUID的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • MyBatisPlus批量添加的優(yōu)化與報錯解決

    MyBatisPlus批量添加的優(yōu)化與報錯解決

    MybatisPlus是一個高效的java持久層框架,它在Mybatis的基礎(chǔ)上增加了一些便捷的功能,提供了更加易用的API,可以大幅度提高開發(fā)效率,這篇文章主要給大家介紹了關(guān)于MyBatisPlus批量添加的優(yōu)化與報錯解決的相關(guān)資料,需要的朋友可以參考下
    2023-05-05

最新評論

济阳县| 普陀区| 馆陶县| 兰考县| 淳化县| 湖州市| 综艺| 姜堰市| 吴江市| 喀喇沁旗| 祁阳县| 邻水| 钟祥市| 青冈县| 龙井市| 淮南市| 报价| 阿克陶县| 伊吾县| 永善县| 沾益县| 东乡县| 石柱| 陇南市| 平武县| 磴口县| 沙雅县| 临泉县| 黔江区| 武定县| 成安县| 尤溪县| 武清区| 乐平市| 志丹县| 福鼎市| 冕宁县| 中卫市| 上杭县| 永川市| 巴塘县|