




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、0JavaJava的異常處理的異常處理1程序中的錯(cuò)誤可分為三類(lèi):n編譯錯(cuò)誤、邏輯錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤。編譯錯(cuò)誤、邏輯錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤。 編譯錯(cuò)誤編譯錯(cuò)誤是由于沒(méi)有遵循是由于沒(méi)有遵循Java語(yǔ)言的語(yǔ)語(yǔ)言的語(yǔ)法規(guī)則而產(chǎn)生的,這種錯(cuò)誤要在編譯階段排法規(guī)則而產(chǎn)生的,這種錯(cuò)誤要在編譯階段排除,否則程序不可能運(yùn)行。除,否則程序不可能運(yùn)行。 邏輯錯(cuò)誤邏輯錯(cuò)誤是指程序編譯正常,也能運(yùn)行,是指程序編譯正常,也能運(yùn)行,但結(jié)果不是人們所期待的。但結(jié)果不是人們所期待的。2 運(yùn)行時(shí)錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤是指程序運(yùn)行過(guò)程中出現(xiàn)是指程序運(yùn)行過(guò)程中出現(xiàn)了一個(gè)不可能執(zhí)行的操作,就會(huì)出現(xiàn)運(yùn)行了一個(gè)不可能執(zhí)行的操作,就會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤,運(yùn)行時(shí)
2、錯(cuò)誤有時(shí)也可以由邏輯錯(cuò)時(shí)錯(cuò)誤,運(yùn)行時(shí)錯(cuò)誤有時(shí)也可以由邏輯錯(cuò)誤引起。誤引起。 異常處理異常處理的主要目的是即使在程序運(yùn)的主要目的是即使在程序運(yùn)行時(shí)發(fā)生了錯(cuò)誤,也要保證程序能正常結(jié)行時(shí)發(fā)生了錯(cuò)誤,也要保證程序能正常結(jié)束,避免由于錯(cuò)誤而使正在運(yùn)行的程序中束,避免由于錯(cuò)誤而使正在運(yùn)行的程序中途停止。途停止。3什么是異常?l異常處理機(jī)制異常處理機(jī)制是是JAVAJAVA語(yǔ)言的重要特征之一。通過(guò)異常語(yǔ)言的重要特征之一。通過(guò)異常處理機(jī)制處理機(jī)制可防止程序執(zhí)行期間因出現(xiàn)錯(cuò)誤而造可防止程序執(zhí)行期間因出現(xiàn)錯(cuò)誤而造成不可預(yù)料的結(jié)果。成不可預(yù)料的結(jié)果。l一個(gè)好的應(yīng)用程序,除了具備用戶要求的功能外,一個(gè)好的應(yīng)用程序,除了
3、具備用戶要求的功能外,還要還要求能預(yù)見(jiàn)程序執(zhí)行過(guò)程中可能產(chǎn)生的各種異求能預(yù)見(jiàn)程序執(zhí)行過(guò)程中可能產(chǎn)生的各種異常,并把處理異常的功能包括在用戶程序中。常,并把處理異常的功能包括在用戶程序中。4n異常是異常是程序執(zhí)行期間程序執(zhí)行期間發(fā)生的各種意外或錯(cuò)誤。發(fā)生的各種意外或錯(cuò)誤。比如說(shuō): 用戶輸入出錯(cuò) 所需文件找不到 運(yùn)行時(shí)磁盤(pán)空間不夠 內(nèi)存不夠 算術(shù)運(yùn)算錯(cuò)(數(shù)的溢出,被零除) 數(shù)組下標(biāo)越界 5在在Java程序運(yùn)行過(guò)程中,產(chǎn)生的異常通常有三種類(lèi)型:程序運(yùn)行過(guò)程中,產(chǎn)生的異常通常有三種類(lèi)型:q一是一是JAVA虛擬機(jī)由于某些內(nèi)部錯(cuò)誤產(chǎn)生的異常,虛擬機(jī)由于某些內(nèi)部錯(cuò)誤產(chǎn)生的異常,這類(lèi)異常不在用戶程序的控制之內(nèi)
4、,也不需要用戶這類(lèi)異常不在用戶程序的控制之內(nèi),也不需要用戶處理這類(lèi)異常;處理這類(lèi)異常;q二是標(biāo)準(zhǔn)異常類(lèi),由二是標(biāo)準(zhǔn)異常類(lèi),由java系統(tǒng)預(yù)先定義好的。這類(lèi)系統(tǒng)預(yù)先定義好的。這類(lèi)異常是由程序代碼中的錯(cuò)誤而產(chǎn)生的,如:以零為異常是由程序代碼中的錯(cuò)誤而產(chǎn)生的,如:以零為除數(shù)的除法,訪問(wèn)數(shù)組下標(biāo)范圍以外的數(shù)組元素,除數(shù)的除法,訪問(wèn)數(shù)組下標(biāo)范圍以外的數(shù)組元素,訪問(wèn)空對(duì)象內(nèi)的信息,這是需要用戶程序處理的異訪問(wèn)空對(duì)象內(nèi)的信息,這是需要用戶程序處理的異常。常。q三是根據(jù)需要在用戶程序中自定義的一些異常類(lèi)。三是根據(jù)需要在用戶程序中自定義的一些異常類(lèi)。6lJavaJava中所有的異常都是用類(lèi)表示的,在中所有的異常
5、都是用類(lèi)表示的,在JAVAJAVA中預(yù)定中預(yù)定義了很多異常類(lèi),每個(gè)代表了一種類(lèi)型的運(yùn)行錯(cuò)誤。義了很多異常類(lèi),每個(gè)代表了一種類(lèi)型的運(yùn)行錯(cuò)誤。當(dāng)程序發(fā)生異常時(shí),會(huì)生成某個(gè)異常類(lèi)的對(duì)象。當(dāng)程序發(fā)生異常時(shí),會(huì)生成某個(gè)異常類(lèi)的對(duì)象。lJavaJava解釋器可以監(jiān)視程序中發(fā)生的異常,如果程序解釋器可以監(jiān)視程序中發(fā)生的異常,如果程序中產(chǎn)生的異常與系統(tǒng)中預(yù)定義某個(gè)異常類(lèi)相對(duì)應(yīng),系中產(chǎn)生的異常與系統(tǒng)中預(yù)定義某個(gè)異常類(lèi)相對(duì)應(yīng),系統(tǒng)就自動(dòng)產(chǎn)生一個(gè)該異常類(lèi)的對(duì)象,就可以用相應(yīng)的統(tǒng)就自動(dòng)產(chǎn)生一個(gè)該異常類(lèi)的對(duì)象,就可以用相應(yīng)的機(jī)制處理異常,確保程序能夠安全正常地繼續(xù)運(yùn)行。機(jī)制處理異常,確保程序能夠安全正常地繼續(xù)運(yùn)行。l異
6、常對(duì)象中含有這種運(yùn)行錯(cuò)誤的信息和異常發(fā)生時(shí)異常對(duì)象中含有這種運(yùn)行錯(cuò)誤的信息和異常發(fā)生時(shí)程序的運(yùn)行狀態(tài)。程序的運(yùn)行狀態(tài)。7二、二、JavaJava中標(biāo)準(zhǔn)異常類(lèi)的層次結(jié)構(gòu)中標(biāo)準(zhǔn)異常類(lèi)的層次結(jié)構(gòu) 針對(duì)各種類(lèi)型的異常,針對(duì)各種類(lèi)型的異常,JavaJava定義了許多定義了許多標(biāo)準(zhǔn)異常類(lèi)標(biāo)準(zhǔn)異常類(lèi),所有的,所有的JavaJava異常類(lèi)都是系統(tǒng)類(lèi)異常類(lèi)都是系統(tǒng)類(lèi)庫(kù)中的庫(kù)中的ExceptionException類(lèi)的子類(lèi),它們分布在類(lèi)的子類(lèi),它們分布在java.langjava.lang、java.iojava.io、java.utiljava.util和和包中。每個(gè)異常類(lèi)對(duì)應(yīng)一種特定的包中。每個(gè)異常類(lèi)對(duì)應(yīng)一種
7、特定的運(yùn)行錯(cuò)誤,各個(gè)異常類(lèi)采用繼承的方式進(jìn)行運(yùn)行錯(cuò)誤,各個(gè)異常類(lèi)采用繼承的方式進(jìn)行組織。異常類(lèi)的層次結(jié)構(gòu)圖如下圖所示:組織。異常類(lèi)的層次結(jié)構(gòu)圖如下圖所示:8JavaJava中異常類(lèi)的結(jié)構(gòu):中異常類(lèi)的結(jié)構(gòu):Throwable類(lèi)類(lèi)Error類(lèi)類(lèi)ExceptionException類(lèi)類(lèi) RuntimeException類(lèi)類(lèi)ArithmeticException類(lèi)類(lèi)IndexOutofBoundException類(lèi)類(lèi)ArrayIndexOutofBoundsException類(lèi)類(lèi)IoException類(lèi)類(lèi)FileNotFoundException類(lèi)類(lèi)EOFException類(lèi)類(lèi)在在Java.lang包
8、包在在Java.io包包9uThrowableThrowable類(lèi)類(lèi)有兩個(gè)直接子類(lèi):有兩個(gè)直接子類(lèi): ErrorError(致(致命錯(cuò)誤)命錯(cuò)誤) 和和ExceptionException(異常)。(異常)。uErrorError類(lèi)型類(lèi)型的異常與的異常與JAVAJAVA虛擬機(jī)本身發(fā)生的虛擬機(jī)本身發(fā)生的錯(cuò)誤有關(guān),這類(lèi)異常由錯(cuò)誤有關(guān),這類(lèi)異常由javajava直接處理,用直接處理,用戶程序一般不能太做什么,只能等待系統(tǒng)戶程序一般不能太做什么,只能等待系統(tǒng)通知用戶關(guān)閉程序。通知用戶關(guān)閉程序。u用戶程序產(chǎn)生的錯(cuò)誤由用戶程序產(chǎn)生的錯(cuò)誤由ExceptionException的子類(lèi)表的子類(lèi)表示。用戶程序應(yīng)該
9、處理這類(lèi)異常。示。用戶程序應(yīng)該處理這類(lèi)異常。10、ThrowableThrowable類(lèi)類(lèi)u 該類(lèi)屬于該類(lèi)屬于Java.lang包,是所有異常包,是所有異常類(lèi)的父類(lèi)在類(lèi)的父類(lèi)在Throwable類(lèi)中定義了描類(lèi)中定義了描述異常發(fā)生的位置和所有異常類(lèi)共同需述異常發(fā)生的位置和所有異常類(lèi)共同需要的內(nèi)容要的內(nèi)容11Throwable類(lèi)的構(gòu)造函數(shù)(1) public Throwable() 以以nullnull作為錯(cuò)誤信息串內(nèi)容創(chuàng)建作為錯(cuò)誤信息串內(nèi)容創(chuàng)建ThrowableThrowable對(duì)象,同時(shí)對(duì)象,同時(shí)調(diào)用該對(duì)象的另一方法調(diào)用該對(duì)象的另一方法fillInStackTracefillInStackTr
10、ace記錄異常發(fā)生的位記錄異常發(fā)生的位置。置。 (2) public Throwable(String message)以以message的內(nèi)容作為錯(cuò)誤信息串創(chuàng)建的內(nèi)容作為錯(cuò)誤信息串創(chuàng)建Throwable對(duì)象,同時(shí)調(diào)對(duì)象,同時(shí)調(diào)用該對(duì)象的另一方法用該對(duì)象的另一方法fillInStackTrace。12Throwable類(lèi)的主要成員函數(shù) 如果創(chuàng)建當(dāng)前對(duì)象時(shí)以如果創(chuàng)建當(dāng)前對(duì)象時(shí)以message的內(nèi)容作為錯(cuò)誤信息串,本方法的內(nèi)容作為錯(cuò)誤信息串,本方法返回串變量返回串變量message的內(nèi)容;若創(chuàng)建當(dāng)前對(duì)象時(shí)未使用參數(shù)則返的內(nèi)容;若創(chuàng)建當(dāng)前對(duì)象時(shí)未使用參數(shù)則返回回null。(1) public Str
11、ing getMessage()(2) public String toString()若當(dāng)前對(duì)象包含錯(cuò)誤信息,本方法返回的字符串由三部分組成:若當(dāng)前對(duì)象包含錯(cuò)誤信息,本方法返回的字符串由三部分組成:當(dāng)前對(duì)象的類(lèi)名,一個(gè)冒號(hào)和一個(gè)空格,錯(cuò)誤信息的字符串;當(dāng)前對(duì)象的類(lèi)名,一個(gè)冒號(hào)和一個(gè)空格,錯(cuò)誤信息的字符串;若當(dāng)前對(duì)象未包含錯(cuò)誤信息則僅返回當(dāng)前對(duì)象的類(lèi)名。若當(dāng)前對(duì)象未包含錯(cuò)誤信息則僅返回當(dāng)前對(duì)象的類(lèi)名。13Throwable類(lèi)的主要成員函數(shù)(續(xù))將跟蹤棧中的信息輸出,輸出的第一行是當(dāng)前對(duì)象將跟蹤棧中的信息輸出,輸出的第一行是當(dāng)前對(duì)象toString( )的的返回值,其余各行是跟蹤棧中的信息。返回
12、值,其余各行是跟蹤棧中的信息。 (3) public void printStackTrace()(4) public Trowable fillInStackTrace()將當(dāng)前異常對(duì)象的發(fā)生位置將當(dāng)前異常對(duì)象的發(fā)生位置 (類(lèi)、方法和所在文件的行號(hào)類(lèi)、方法和所在文件的行號(hào)) 記錄記錄到跟蹤棧對(duì)象中。到跟蹤棧對(duì)象中。14 Error類(lèi)是類(lèi)是Throwable類(lèi)的子類(lèi),由系統(tǒng)保留,類(lèi)的子類(lèi),由系統(tǒng)保留,用戶不能使用。也就是說(shuō),用戶不能使用。也就是說(shuō), Error類(lèi)型的錯(cuò)誤不允類(lèi)型的錯(cuò)誤不允許用戶插手處理,由許用戶插手處理,由Java系統(tǒng)自行處理。系統(tǒng)自行處理。qErrorError類(lèi)描述系統(tǒng)錯(cuò)誤
13、:如將字節(jié)碼裝入內(nèi)存的過(guò)類(lèi)描述系統(tǒng)錯(cuò)誤:如將字節(jié)碼裝入內(nèi)存的過(guò)程中和對(duì)字節(jié)碼進(jìn)行檢查的過(guò)程中遇到的問(wèn)題、程中和對(duì)字節(jié)碼進(jìn)行檢查的過(guò)程中遇到的問(wèn)題、javajava的內(nèi)部錯(cuò)誤、資源耗盡的情況。的內(nèi)部錯(cuò)誤、資源耗盡的情況。q這類(lèi)異常由這類(lèi)異常由javajava直接處理,用戶程序不要理會(huì)這類(lèi)直接處理,用戶程序不要理會(huì)這類(lèi)異常。異常。、ErrorError類(lèi)類(lèi)15 Exception類(lèi)是類(lèi)是Throwable類(lèi)的子類(lèi),用戶程序中可以直類(lèi)的子類(lèi),用戶程序中可以直接使用接使用Exception類(lèi)處理類(lèi)處理Exception類(lèi)型的異常。類(lèi)型的異常。Exception類(lèi)不僅繼承了類(lèi)不僅繼承了Throwable
14、類(lèi)的方法,同時(shí)定義以下兩個(gè)構(gòu)造函類(lèi)的方法,同時(shí)定義以下兩個(gè)構(gòu)造函數(shù):數(shù): public Exception() public Exception(String s) 說(shuō)明:說(shuō)明: 字符串字符串s用來(lái)接收傳入的字符串信息,該信息通常是用來(lái)接收傳入的字符串信息,該信息通常是 對(duì)錯(cuò)誤的描述。對(duì)錯(cuò)誤的描述。3 3、ExceptionException類(lèi)類(lèi)16異常程序舉例:異常程序舉例:/java直接處理運(yùn)行時(shí)異常直接處理運(yùn)行時(shí)異常class TestSystemException public static void main(String args) intnum =new int2; for(in
15、t i=1;i4) throw (new ArrayIndexOutOfBoundsException(); System.out.println(“After throw ArrayIndexOutOfBoundsException”); 24Throw語(yǔ)句舉例3class Throw_Exp3 public static void main(String args) int a=5,b=0,c=1,2,3,4,5; System.out.println(“Before throw”); if(b=0) throw (new ArithmeticException (); System.ou
16、t.println(a/b); if(a4) throw (new ArrayIndexOutOfBoundsException(); System.out.println(a/b); 25五、捕捉異常五、捕捉異常 在前面給出的例子中,由于程序中都沒(méi)有給出處理在前面給出的例子中,由于程序中都沒(méi)有給出處理異常的代碼,因此拋出的異常都被異常的代碼,因此拋出的異常都被Java運(yùn)行系統(tǒng)捕捉,運(yùn)行系統(tǒng)捕捉,由由Java運(yùn)行系統(tǒng)進(jìn)行相應(yīng)處理。一般來(lái)說(shuō),在設(shè)計(jì)程運(yùn)行系統(tǒng)進(jìn)行相應(yīng)處理。一般來(lái)說(shuō),在設(shè)計(jì)程序過(guò)程中,如果能夠預(yù)測(cè)程序中可能發(fā)生序過(guò)程中,如果能夠預(yù)測(cè)程序中可能發(fā)生 的異常,則的異常,則應(yīng)在程序中給出
17、處理代碼。而不交給應(yīng)在程序中給出處理代碼。而不交給Java運(yùn)行系統(tǒng)處運(yùn)行系統(tǒng)處理,對(duì)于程序中那些不能預(yù)測(cè)的異常,可交給理,對(duì)于程序中那些不能預(yù)測(cè)的異常,可交給Java運(yùn)運(yùn)行行 系統(tǒng)處理。系統(tǒng)處理。 要由程序自己捕捉和處理異常,需要建立要由程序自己捕捉和處理異常,需要建立try - catch-finally語(yǔ)句塊。語(yǔ)句塊。26try try - - catchcatch語(yǔ)句塊格式:語(yǔ)句塊格式:try /在此區(qū)域內(nèi)或能發(fā)生異常在此區(qū)域內(nèi)或能發(fā)生異常; catch(異常類(lèi)異常類(lèi)1 e1) /處理異常處理異常1; catch(異常類(lèi)異常類(lèi)n en) /處理異常處理異常n; finally /不論異常
18、是否發(fā)生不論異常是否發(fā)生,都要執(zhí)行的部分都要執(zhí)行的部分; 被監(jiān)視的塊被監(jiān)視的塊該該catch子句能夠捕捉子句能夠捕捉和處理的異常類(lèi)型和處理的異常類(lèi)型27(1 1)將可能發(fā)生異常的程序代碼放置在)將可能發(fā)生異常的程序代碼放置在trytry程序塊中。如果程序塊中。如果該塊內(nèi)的代碼出現(xiàn)了異常,系統(tǒng)將終止該塊內(nèi)的代碼出現(xiàn)了異常,系統(tǒng)將終止trytry塊代碼的執(zhí)行,塊代碼的執(zhí)行,自動(dòng)跳轉(zhuǎn)到所發(fā)生的異常類(lèi)對(duì)應(yīng)的自動(dòng)跳轉(zhuǎn)到所發(fā)生的異常類(lèi)對(duì)應(yīng)的catchcatch塊中,執(zhí)行該塊中塊中,執(zhí)行該塊中的代碼。如果程序運(yùn)行正常,后面的各的代碼。如果程序運(yùn)行正常,后面的各catchcatch塊不起任何作塊不起任何作用。
19、用。(2 2)finallyfinally塊是個(gè)可選項(xiàng),無(wú)論異常是否發(fā)生,塊是個(gè)可選項(xiàng),無(wú)論異常是否發(fā)生,finallyfinally塊塊的代碼必定執(zhí)行。通常把對(duì)各種異常共同處理部分放在的代碼必定執(zhí)行。通常把對(duì)各種異常共同處理部分放在finallyfinally塊中,如輸出統(tǒng)一信息、釋放資源、清理內(nèi)存、關(guān)塊中,如輸出統(tǒng)一信息、釋放資源、清理內(nèi)存、關(guān)閉已打開(kāi)的文件等。閉已打開(kāi)的文件等。(3 3)一個(gè))一個(gè)trytry塊可以對(duì)應(yīng)多個(gè)塊可以對(duì)應(yīng)多個(gè)catchcatch塊,用于對(duì)多個(gè)異常類(lèi)進(jìn)塊,用于對(duì)多個(gè)異常類(lèi)進(jìn)行捕獲。但最多只能選中一個(gè)執(zhí)行。行捕獲。但最多只能選中一個(gè)執(zhí)行。(4 4)異常對(duì)象與)異常
20、對(duì)象與catchcatch塊中聲明的實(shí)例的匹配原則:塊中聲明的實(shí)例的匹配原則:異常對(duì)象是異常對(duì)象是catchcatch塊中聲明的異常類(lèi)的實(shí)例塊中聲明的異常類(lèi)的實(shí)例; ;異常對(duì)象是異常對(duì)象是catchcatch塊中聲明的異常類(lèi)的某一子類(lèi)的實(shí)例塊中聲明的異常類(lèi)的某一子類(lèi)的實(shí)例; ;Try-catch-finally結(jié)構(gòu)說(shuō)明:28try - catch-finally語(yǔ)句舉例1class Try_Catch_Exp1public static void main(String args) int d=0,a; try System.out.println(Before throw Exception
21、); a=5/d; System.out.println(the Exception is throw,The statement ist run); catch(ArithmeticException e) System.out.println(處理算數(shù)異常的處理算數(shù)異常的catch語(yǔ)句塊捕獲了異常!語(yǔ)句塊捕獲了異常!); System.out.println(捕獲的異常為捕獲的異常為+e); catch(ArrayIndexOutOfBoundsException e) System.out.println(處理數(shù)組下標(biāo)越異常的處理數(shù)組下標(biāo)越異常的catch語(yǔ)句塊捕獲了異常!語(yǔ)句塊捕獲了異
22、常!); System.out.println(捕獲的異常為捕獲的異常為+e); finally System.out.println(這是所有這是所有catch塊的共有部分!塊的共有部分!); System.out.println(try-catch-finally塊后面的語(yǔ)句塊后面的語(yǔ)句); 29try - catch-finally語(yǔ)句舉例2class Try_Catch_Exp2 public static void main(String args) int a=5,b=0,c=1,2,3,4,5; try System.out.println(Before throw); if(a
23、4) throw (new ArrayIndexOutOfBoundsException(); System.out.println (After throw); catch(ArrayIndexOutOfBoundsException e) System.out.println(處理數(shù)組下標(biāo)越異常的處理數(shù)組下標(biāo)越異常的catch語(yǔ)句塊捕獲了語(yǔ)句塊捕獲了異常!異常!); System.out.println(捕獲的異常為捕獲的異常為+e); finally System.out.println(這是所有這是所有catch塊的共有部分!塊的共有部分!); System.out.println(t
24、ry-catch-finally塊后面的語(yǔ)句塊后面的語(yǔ)句); 30程序設(shè)計(jì)舉例:n求三角形的面積或周長(zhǎng)。注意:三角形的三條邊通過(guò)鍵盤(pán)輸入,輸入的數(shù)值構(gòu)不成三角形的話,需要重新輸入。31六、用戶自定義的異常類(lèi) 盡管盡管JavaJava提供了很多異常類(lèi),但用戶還是可以根據(jù)需要定義提供了很多異常類(lèi),但用戶還是可以根據(jù)需要定義自己的異常類(lèi),即創(chuàng)建自定義異常類(lèi)。自己的異常類(lèi),即創(chuàng)建自定義異常類(lèi)。 說(shuō)明:說(shuō)明:(1 1)用戶自定義的異常類(lèi)必須是)用戶自定義的異常類(lèi)必須是ThrowableThrowable類(lèi)或類(lèi)或ExceptionException類(lèi)類(lèi)的子類(lèi)。的子類(lèi)。(2 2)自定義的異常類(lèi),一般只要聲明
25、兩個(gè)構(gòu)造方法,一個(gè)是)自定義的異常類(lèi),一般只要聲明兩個(gè)構(gòu)造方法,一個(gè)是不用參數(shù)的,另一個(gè)以字符串為參數(shù)。作為構(gòu)造方法參數(shù)的不用參數(shù)的,另一個(gè)以字符串為參數(shù)。作為構(gòu)造方法參數(shù)的字符串應(yīng)當(dāng)反映異常的信息。字符串應(yīng)當(dāng)反映異常的信息。32其一般形式為:其一般形式為:class 自定義異常類(lèi)名自定義異常類(lèi)名 extends Exception 異常類(lèi)體異常類(lèi)體;用戶自定義的異常類(lèi)格式:33用戶自定義的異常類(lèi)說(shuō)明:u自定義異常類(lèi)自定義異常類(lèi)class MyException extends Exception u用戶定義的異常同樣要用用戶定義的異常同樣要用try-catch捕獲捕獲,但必須由但必須由用戶自
26、己拋出用戶自己拋出 throw new MyException().34用戶自定義的異常類(lèi)舉例:class Exception_exppublic static void main(String args)try System.out.println(2+3=+add(2,3); System.out.println(-8+10=+add(-8,10);catch (Exception e) System.out.println(Exception is +e); static int add(int n,int m) throws UserException if (n0| m0) throw new UserException(); return n+m; class UserException extends ExceptionUserException()super(數(shù)據(jù)為負(fù)數(shù)數(shù)據(jù)為負(fù)數(shù));35
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)三相可控硅直流調(diào)速裝置數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)HIPS塑膠料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 勞動(dòng)合同(20XX年完整版)
- 遺產(chǎn)繼承金融資產(chǎn)管理合同(2篇)
- 采購(gòu)與分包管理合同(2篇)
- 高等教育自學(xué)考試《00074中央銀行概論》模擬試卷三
- 新浪樂(lè)居萬(wàn)達(dá)中央旅游城歲末營(yíng)銷(xiāo)方案
- 《人工智能應(yīng)用與發(fā)展:高中人工智能學(xué)習(xí)指南》
- 商業(yè)推廣項(xiàng)目合作協(xié)議書(shū)
- 環(huán)保技術(shù)研發(fā)與推廣戰(zhàn)略合作協(xié)議
- 大學(xué)生心理健康 第3章-教學(xué)教案-自我意識(shí)
- 中職高教版(2023)語(yǔ)文職業(yè)模塊-第一單元1.2寧夏閩寧鎮(zhèn):昔日干沙灘今日金沙灘【課件】
- 2025年春季1530安全教育記錄主題
- 基本藥物制度政策培訓(xùn)課件
- 《無(wú)人機(jī)測(cè)繪技術(shù)》項(xiàng)目1任務(wù)3無(wú)人機(jī)測(cè)繪基礎(chǔ)知識(shí)
- (市級(jí))數(shù)學(xué)活動(dòng):人教七下第5章《探究平行線的多種畫(huà)法》教學(xué)設(shè)計(jì)(張佳琦-三門(mén)峽靈寶二中)
- 船體開(kāi)孔規(guī)則
- (精選)沸騰焙燒爐設(shè)計(jì)相關(guān)計(jì)算
- 多元化與專(zhuān)業(yè)化的利弊之爭(zhēng)
- ASMEB16.14-1991中文版鋼鐵管螺紋管堵、內(nèi)外螺絲和鎖緊螺母
- 《雕塑工程工程量清單計(jì)價(jià)定額》
評(píng)論
0/150
提交評(píng)論