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

Java中的throws異常處理及使用細(xì)節(jié)

 更新時(shí)間:2025年10月28日 17:00:45   作者:麥麥雞腿堡  
本文給大家介紹Java中的throws異常處理注意事項(xiàng)和使用細(xì)節(jié),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

一. throw關(guān)鍵字:

1.作用:

   throw關(guān)鍵字用于在程序中手動(dòng)拋出一個(gè)異常。當(dāng)異常發(fā)生時(shí),程序會(huì)中斷當(dāng)前的執(zhí)行流程,并將異常信息傳遞給上層的異常處理機(jī)制。

2.使用場(chǎng)景:

  (a)當(dāng)我們發(fā)現(xiàn)某些條件不符合業(yè)務(wù)邏輯要求時(shí),我們可以使用throw關(guān)鍵字拋出一個(gè)異常。
  (b)當(dāng)我們?cè)诙x自己的異常類時(shí),可以通過throw關(guān)鍵字主動(dòng)拋出這個(gè)自定義的異常對(duì)象。

3.代碼示例:

public void checkAge(int age) {
   if (age < 0) {
     throw new IllegalArgumentException("年齡不能為負(fù)數(shù)");
   }
}

二. throws關(guān)鍵字:

1.作用:

  throws關(guān)鍵字用于指定方法可能拋出的異常。它標(biāo)識(shí)了哪些異??梢詡鬟f到方法的調(diào)用者,需要調(diào)用者進(jìn)行相應(yīng)的處理。

2.使用場(chǎng)景:

  (a)當(dāng)方法內(nèi)部的代碼可能會(huì)引發(fā)異常時(shí),可以使用throws關(guān)鍵字聲明這些異常。
  (b)當(dāng)我們不希望在當(dāng)前方法中捕獲異常,并且希望將異常傳遞給上層調(diào)用者來處理時(shí),可以使用throws關(guān)鍵字。

3.代碼示例:

public void readFile() throws IOException {
   // 異常處理邏輯
}

三. 區(qū)別與聯(lián)系:

throw關(guān)鍵字是用于在方法內(nèi)拋出異常,而throws關(guān)鍵字是在方法聲明中指定可能拋出的異常。

Java的throws異常處理

基本介紹:

1)如果一個(gè)方法(中的執(zhí)行語句)可能生成某種異常,但是并不能確定如何處理這種異常,則此方法應(yīng)顯示的聲明拋出異常,表明該方法將不對(duì)這些異常進(jìn)行處理,而由該方法的調(diào)用者負(fù)責(zé)處理

2)在方法聲明中用throws語句可以聲明拋出異常的列表,throws后面的異常類型可以是方法中產(chǎn)生的異常類型,也可以是它的父類

package com.exception_;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class Throws01 {
    public static void main(String[] args) {
    }
    public void f1() throws FileNotFoundException,NullPointerException,ArithmeticException{ //也可以寫throws Exception
        //創(chuàng)建了一個(gè)文件流對(duì)象
        //解讀:
        //這里的異常是一個(gè)FileNotFoundException 編譯異常,必須對(duì)其處理
        //使用try-catch-finally處理
        //或使用throws拋出異常,讓調(diào)用f1()的調(diào)用者來處理
        //throws后面的異常類型可以是方法中產(chǎn)生的異常類型,也可以是它的父類(如Exception,Error(基類)和它的父類)
        //throws 關(guān)鍵字后也可以是 異常列表,即可以拋出多個(gè)異常
        FileInputStream fis = new FileInputStream("d://aa.txt");
    }
}

注意事項(xiàng)和使用細(xì)節(jié):

1)對(duì)于編譯異常,程序中必須處理,比如try-catch或throws

2)對(duì)于運(yùn)行時(shí)異常,程序中如果沒有處理,默認(rèn)就是throws的方式

3)子類重寫父類的方法時(shí),對(duì)拋出異常的規(guī)定:子類重寫的方法,所拋出的異常類型要么和父類拋出的異常一致,要么為父類拋出的異常的類型的子類型

4)在throws過程中,如果有方法try-catch,就相當(dāng)于處理異常,就可以不必throws

package com.exception_;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class ThrowsDetails {
    public static void main(String[] args) {
    }
    public void f2() /*throws ArithmeticException 把異常拋給調(diào)用者,默認(rèn)不寫也有*/
    {
        int n1 = 10;
        int n2 = 0;
        double res = n1/n2;
    }
    public void f1() throws FileNotFoundException{
        f3();//當(dāng)f1()不去throws時(shí),這個(gè)語句會(huì)報(bào)錯(cuò)
        //解讀:
        //1.因?yàn)閒3() 方法拋出的是一個(gè)編譯異常
        //2.即這時(shí),就要求f1() 必須處理這個(gè)異常(try-catch或繼續(xù)throws)
    }
    public void f3() throws FileNotFoundException {
        FileInputStream fis = new FileInputStream("d://aa.txt");
    }
    public static void f4(){
        f5();//這里直接調(diào)用f5不會(huì)報(bào)錯(cuò)
        //解讀:
        //f5拋出的是一個(gè)運(yùn)行異常
        //java中并不要求程序員顯示處理,因?yàn)橛心J(rèn)處理機(jī)制
    }
    public static void f5() throws ArithmeticException{
    }
}
class Father{//父類
    public void method() throws RuntimeException{
    }
}
class Son extends Father{//子類
//子類重寫父類的方法時(shí),對(duì)拋出異常的規(guī)定:
//子類重寫的方法,所拋出的異常類型要么和父類拋出的異常一致,要么為父類拋出的異常的類型的子類型
    @Override
    public void method() throws NullPointerException{//子類拋出的類型必須是它父類拋出類型的子類
        super.method();
    }
}

到此這篇關(guān)于Java中的throws異常處理及使用細(xì)節(jié)的文章就介紹到這了,更多相關(guān)java throws異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法

    JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法

    這篇文章主要介紹了JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法,涉及java數(shù)值轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 11種Spring?AI文檔切割策略全解析

    11種Spring?AI文檔切割策略全解析

    本文將深入講解?Spring?AI?中?11?種文檔切割策略的原理、適用場(chǎng)景和實(shí)戰(zhàn)用法,特別重點(diǎn)介紹?5?種高級(jí)切割策略,有需要的小伙伴可以了解下
    2026-03-03
  • java使用正則表達(dá)校驗(yàn)手機(jī)號(hào)碼示例(手機(jī)號(hào)碼正則)

    java使用正則表達(dá)校驗(yàn)手機(jī)號(hào)碼示例(手機(jī)號(hào)碼正則)

    這篇文章主要介紹了java使用正則表達(dá)校驗(yàn)手機(jī)號(hào)碼示例,可校驗(yàn)三個(gè)號(hào)碼段:13*、15*、18*,大家根據(jù)自己的需要增加自己的號(hào)碼段就可以了
    2014-03-03
  • Java程序執(zhí)行Cmd指令所遇問題記錄及解決方案

    Java程序執(zhí)行Cmd指令所遇問題記錄及解決方案

    這篇文章主要介紹了Java程序執(zhí)行Cmd指令所遇問題記錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 淺析JAVA 循環(huán)結(jié)構(gòu)

    淺析JAVA 循環(huán)結(jié)構(gòu)

    這篇文章主要介紹了JAVA 循環(huán)結(jié)構(gòu)的相關(guān)資料,文中講解的非常細(xì)致,示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 詳解MyBatis中Executor執(zhí)行SQL語句的過程

    詳解MyBatis中Executor執(zhí)行SQL語句的過程

    MyBatis中獲取SqlSession時(shí)會(huì)創(chuàng)建執(zhí)行器Executor并存放在SqlSession中,本篇文章將以MapperMethod的execute() 方法作為起點(diǎn),對(duì)MyBatis中的一次實(shí)際執(zhí)行請(qǐng)求進(jìn)行說明,并結(jié)合源碼對(duì)執(zhí)行器Executor的原理進(jìn)行闡釋
    2023-07-07
  • java?zip文件解壓后無法刪除原zip文件問題

    java?zip文件解壓后無法刪除原zip文件問題

    這篇文章主要介紹了java?zip文件解壓后無法刪除原zip文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?

    java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?

    這篇文章主要介紹了java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 關(guān)于JDK8升級(jí)17及springboot?2.x升級(jí)3.x詳細(xì)指南

    關(guān)于JDK8升級(jí)17及springboot?2.x升級(jí)3.x詳細(xì)指南

    這篇文章主要介紹了關(guān)于JDK8升級(jí)17及springboot?2.x升級(jí)3.x的相關(guān)資料,還討論了JPA包路徑從javax改為jakarta,以及Spring?Boot版本升級(jí)和Redis配置調(diào)整等,需要的朋友可以參考下
    2025-01-01
  • MyBatis中有關(guān)int和Integer的使用方式

    MyBatis中有關(guān)int和Integer的使用方式

    這篇文章主要介紹了MyBatis中有關(guān)int和Integer的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

石门县| 保靖县| 永州市| 安顺市| 南京市| 化德县| 红河县| 翼城县| 贡山| 邓州市| 高邮市| 遂平县| 商都县| 通榆县| 安吉县| 邢台市| 荆门市| 呼伦贝尔市| 平昌县| 三江| 浠水县| 康保县| 吉木乃县| 乐业县| 乐山市| 桐梓县| 新龙县| 荥经县| 大新县| 潞西市| 十堰市| 灵山县| 老河口市| 福泉市| 邻水| 扶余县| 乐业县| 新密市| 抚远县| 昌江| 北票市|