




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java異常的捕獲與處理學(xué)習(xí)目標(biāo) 重點、難點Company Logo重點與難重點與難點點異常的捕獲及處理異常的捕獲及處理主要內(nèi)容異?;靖拍町惓n惣捌渥宇惍惓L幚?運行時異常 捕獲異常 聲明異常 拋出異常 學(xué)習(xí)目標(biāo)理解異常處理機制了解異常類及其子類掌握異常的捕獲及處理掌握異常的拋出掌握自定義異常3一、異常機制簡介l在進(jìn)行程序設(shè)計時,錯誤的產(chǎn)生是不可避免的,如何處理錯誤?把錯在進(jìn)行程序設(shè)計時,錯誤的產(chǎn)生是不可避免的,如何處理錯誤?把錯誤交給誰去處理?程序又該如何從錯誤中恢復(fù)?這是任何程序設(shè)計語誤交給誰去處理?程序又該如何從錯誤中恢復(fù)?這是任何程序設(shè)計語言都要解決的問題。言都要解決的問題。lJav
2、aJava異常是異常是JavaJava提供的用于處理程序中錯誤的一種機制。所謂錯誤,提供的用于處理程序中錯誤的一種機制。所謂錯誤,是在是在程序運行過程中程序運行過程中發(fā)生的異常事件,比如除發(fā)生的異常事件,比如除0 0溢出、數(shù)組越界、文件溢出、數(shù)組越界、文件找不到等,這些事件的發(fā)生將阻礙程序的正常運行。找不到等,這些事件的發(fā)生將阻礙程序的正常運行。l為了加強程序的健壯性和容錯性,程序設(shè)計時,應(yīng)充分考慮可能發(fā)生為了加強程序的健壯性和容錯性,程序設(shè)計時,應(yīng)充分考慮可能發(fā)生的異常事件并作出相應(yīng)的處理。的異常事件并作出相應(yīng)的處理。4一、異常基本概念一、異?;靖拍頻異常異常是在程序運行過程中發(fā)生的異常事
3、件,比如是在程序運行過程中發(fā)生的異常事件,比如0 0溢出,數(shù)組越界,溢出,數(shù)組越界,文件找不到等。文件找不到等。l異常處理異常處理使用使用 trytry,catchcatch,throwthrow,throwsthrows,finallyfinally關(guān)鍵字來嘗關(guān)鍵字來嘗試可能未成功的操作,處理失敗,以及在事后清理資源。試可能未成功的操作,處理失敗,以及在事后清理資源。lJavaJava通過通過面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒▉硖幚懋惓?。來處理異常。(各種不同的異常事件進(jìn)行(各種不同的異常事件進(jìn)行分類,把異常事件當(dāng)成對象來處理)分類,把異常事件當(dāng)成對象來處理)把生成異常對象并把它提交給運行時系統(tǒng)的
4、過程稱為把生成異常對象并把它提交給運行時系統(tǒng)的過程稱為拋出拋出(throw)(throw)一個異常。一個異常。 運行時系統(tǒng)從生成異常的方法開始進(jìn)行回溯,直到找到包含相應(yīng)異運行時系統(tǒng)從生成異常的方法開始進(jìn)行回溯,直到找到包含相應(yīng)異常處理的方法為止,這一個過程稱為常處理的方法為止,這一個過程稱為捕獲捕獲(catch)(catch)一個異常。一個異常。方法運行過程中發(fā)生異常,則該方法生成一個異常對象,并把它交給運行時系統(tǒng),運行時系統(tǒng)再處理異常示例lpublic class ExcTest lpublic static void main(String args) lint a=3;lint b=0;
5、lint c=a/b;lSystem.out.println(c);ll5異常示例lpublic class ExcTest lpublic static void main(String args) lint a=3;lint b=0;l if(b=0)l System.out.println(“除數(shù)不能為除數(shù)不能為0”);l elsel int c=a/b;l System.out.println(c);l ll6使用傳統(tǒng)的方式(ifelse)處理異常。不好:表示異常情況有限,且正常代碼和異常代碼混在一起,不利于維護(hù)。Java按照面向?qū)ο蟮乃枷胩幚懋惓?二、異常類及其子類二、異常類及其子類
6、所有異常類型都是所有異常類型都是內(nèi)置類內(nèi)置類Throwable的子的子類類用于用于Java運行時,系統(tǒng)運行時,系統(tǒng)的嚴(yán)重錯,由的嚴(yán)重錯,由Java虛擬虛擬機生成并拋出,包括動機生成并拋出,包括動態(tài)鏈接失敗、虛擬機錯態(tài)鏈接失敗、虛擬機錯誤、線程死鎖等,一般誤、線程死鎖等,一般不做處理。不做處理。用于用戶程序可能用于用戶程序可能捕獲的異常,也是捕獲的異常,也是用來創(chuàng)建用戶異常用來創(chuàng)建用戶異常類型子類的類。類型子類的類。ErrorError類對象是由類對象是由JavaJava虛擬機生成并拋出;通常虛擬機生成并拋出;通常JavaJava程序不對該類異常進(jìn)行處理程序不對該類異常進(jìn)行處理Exception
7、Exception類對象是由類對象是由JavaJava程序處理或拋出。有程序處理或拋出。有不同的子類分別對應(yīng)于不同類型的異常。不同的子類分別對應(yīng)于不同類型的異常。運行時異常,可以不做處理非運行時異常,必須處理Java異常機制的優(yōu)點l通過面向?qū)ο蟮姆椒ò迅鞣N不同的通過面向?qū)ο蟮姆椒ò迅鞣N不同的異常事件分類異常事件分類,利用類的層次性可以把,利用類的層次性可以把多個具有相同父類的異常統(tǒng)一處理,也可以針對不同的異常分別處理,提多個具有相同父類的異常統(tǒng)一處理,也可以針對不同的異常分別處理,提高了錯誤處理的靈活性。高了錯誤處理的靈活性。lJavaJava的異常處理機制將的異常處理機制將“常規(guī)常規(guī)”代碼和
8、處理異常的代碼分開代碼和處理異常的代碼分開,增強了程序,增強了程序的可讀性的可讀性( (想象一下想象一下C C語言用語言用if-elseif-else語句處理異常的情景語句處理異常的情景) )。l異常對象可以沿調(diào)用棧自動向上傳播,而不是異常對象可以沿調(diào)用棧自動向上傳播,而不是C C語言中通過函數(shù)的返回值語言中通過函數(shù)的返回值來傳播,這樣可以傳遞更多的信息并且簡化代碼的編寫,利于查找和調(diào)試來傳播,這樣可以傳遞更多的信息并且簡化代碼的編寫,利于查找和調(diào)試代碼錯誤。代碼錯誤。8異常情況表示為異常類,發(fā)揮類的可擴展和可重用性可以靈活處理異常,有能力處理異常就捕獲處理,沒有能力就拋出,由方法調(diào)用者處理常
9、見異常及其用途 2-19異常說明RuntimeException java.lang包中運行時異常的基類 ArithmeticException 算術(shù)錯誤,如除以 0 IllegalArgumentException 方法收到非法參數(shù) ArrayIndexOutOfBoundsException 數(shù)組下標(biāo)出界 NullPointerException 試圖訪問 null 對象引用 SecurityException 試圖違反安全性 10常見異常及其用途 2-2異常(非運行時異常)說明(直接繼承自Exception類)AWTException AWT 中的異常 IOException I/O 異
10、常的根類 FileNotFoundException 不能找到文件 ClassNotFoundException不能加載請求的類EOFException 文件結(jié)束 IllegalAccessException 對類的訪問被拒絕 NoSuchMethodException 請求的方法不存在 InterruptedException 線程中斷 11三、異常處理的種類三、異常處理的種類l運行時異常運行時異常 可以不做處理可以不做處理l使用使用trytrycatchcatchfinallyfinally語句捕獲異常語句捕獲異常 可能引發(fā)異常的語句封入在可能引發(fā)異常的語句封入在 try try 塊內(nèi),而
11、處理異常的相應(yīng)語句則封入在塊內(nèi),而處理異常的相應(yīng)語句則封入在 catch catch 塊內(nèi)。塊內(nèi)。l通過通過throwsthrows子句聲明異常,還可以定義自己的異常類,并子句聲明異常,還可以定義自己的異常類,并用用throwthrow語句拋出它。語句拋出它。 在方法聲明中包含在方法聲明中包含 throws throws 子句,通知潛在調(diào)用者,如果發(fā)生了異常,必須由子句,通知潛在調(diào)用者,如果發(fā)生了異常,必須由調(diào)用者處理。調(diào)用者處理。由五個關(guān)鍵字 try、catch、throw、throws 和 finally 處理。12運行時異常運行時異常lRuntimeException類及其子類類及其子類
12、可以不做處理可以不做處理,系統(tǒng)會把生成的異常對,系統(tǒng)會把生成的異常對象交給默認(rèn)的異常處理程序,在標(biāo)準(zhǔn)輸出上顯示異常的內(nèi)容以及發(fā)生象交給默認(rèn)的異常處理程序,在標(biāo)準(zhǔn)輸出上顯示異常的內(nèi)容以及發(fā)生異常的位置。異常的位置。leg: public class ExcTest lpublic static void main(String args) lint a=3;lint b=0;lint c=a/b;lSystem.out.println(c);ll哈哈,可以不做處理!哈哈,可以不做處理!Exception in thread main java.lang.ArithmeticException:
13、/ by zeroat com.exp.ExcTest.main(ExcTest.java:11)運行時異常例子public class RuntimeExceptionProc public static void main(String args) int i=0,n=0,sum=0; int a=5,6,7,8; for(i=0;i=5;i+) System.out.println(ai);/數(shù)組越界,運行時異常數(shù)組越界,運行時異常 sum+=ai; System.out.println(“平均值平均值”+(sum/n);/異常一旦發(fā)生,異常一旦發(fā)生,程序終止,不再執(zhí)行程序終止,不再執(zhí)行
14、 13java.lang.ArrayIndexOutOfBoundsException: 414常見的運行時異常運行時異常(RuntimeException子類)說明ArithmeticException 算術(shù)錯誤,如除以 0 ,如r/0ArrayIndexOutOfBoundsException 數(shù)組下標(biāo)出界 NullPointerException 試圖訪問 null 對象引用 NegativeArraySizeException數(shù)組的長度時負(fù)數(shù)ClassNotFoundException不能加載請求的類(向下轉(zhuǎn)型時)15四、捕獲異常四、捕獲異常使用使用trytrycatchcatchfi
15、nallyfinallyl基本格式基本格式try 可能產(chǎn)生異常的語句可能產(chǎn)生異常的語句/ 不能有其它語句分隔不能有其它語句分隔catch (Etype1 e1) 處理異常處理異常1的語句的語句catch (Etype2 e2) 處理異常處理異常2的語句的語句finally 事后處理語句事后處理語句其中,catch可以有一個或多個,而且至少有一個catch語句或finally語句o try塊包含可能產(chǎn)生異常的代碼o try塊后跟有一個或多個catch塊,但最多只有一個會被執(zhí)行o 每個catch塊聲明其能處理的一種特定類型的異常o 每個catch塊都是一段異常處理代碼o 無論是否發(fā)生異常,fina
16、lly塊都將被執(zhí)行,用來完成一些清理工作,如關(guān)閉文件等.16示例:try-catch捕獲和處理異常public class Try1public static void main(String args)int i=0,n=0,sum=0;int a=5,6,7,8;try for(i=0;i=5;i+) System.out.println(ai); sum+=ai; System.out.println(“平均值平均值”+(sum/n); catch(ArrayIndexOutOfBoundsException e) System.out.println(數(shù)組異常數(shù)組異常:+e.toStr
17、ing(); catch(Exception e) System.out.println(異常異常:+e.toString(); a4將引發(fā)一個數(shù)組將引發(fā)一個數(shù)組越界異常越界異常在在catch塊中處理塊中處理數(shù)組異常數(shù)組異常除數(shù)不能為除數(shù)不能為0,引發(fā),引發(fā)異常,實際上沒有發(fā)異常,實際上沒有發(fā)生生在在catch塊中處理除數(shù)塊中處理除數(shù)不能為不能為0異常異常5678數(shù)組異常:java.lang.ArrayIndexOutOfBoundsException: 4try-catch-finallyltrytry塊塊 用用 指定了一段可能拋出一個或多個異常的代碼,同時也指定了它后面指定了一段可能拋出一
18、個或多個異常的代碼,同時也指定了它后面catchcatch語句所捕獲的異常的范圍。語句所捕獲的異常的范圍。 trytry指定的代碼中,當(dāng)拋出一個異常,指定的代碼中,當(dāng)拋出一個異常,后面的代碼不會被執(zhí)行。后面的代碼不會被執(zhí)行。lcatchcatch塊塊 ,可以有多個,每一塊處理一個異常。,可以有多個,每一塊處理一個異常。 catchcatch語句的參數(shù)包括一個異常類型(語句的參數(shù)包括一個異常類型(必須為必須為ThrowableThrowable類的子類,指類的子類,指明明catchcatch語句所處理的異常類型語句所處理的異常類型)和一個異常對象(由運行時系統(tǒng)在)和一個異常對象(由運行時系統(tǒng)在t
19、rytry所指定的代碼塊中生成并由虛擬機捕獲)。所指定的代碼塊中生成并由虛擬機捕獲)。 內(nèi)為對象的處理的語句,其中可以調(diào)用對象的方法。內(nèi)為對象的處理的語句,其中可以調(diào)用對象的方法。lfinallyfinally塊塊 通過通過finallyfinally語句可以指定一塊代碼,語句可以指定一塊代碼,無論無論trytry中拋出或不拋出,中拋出或不拋出,也也無論無論catchcatch語句的異常類型是否于拋出的異常類型一致,語句的異常類型是否于拋出的異常類型一致,finallyfinally都要執(zhí)行。都要執(zhí)行。通常進(jìn)程資源的清除,如關(guān)閉文件。通常進(jìn)程資源的清除,如關(guān)閉文件。17例外:如果try塊中存在
20、System.exit(0)語句,那么就不會執(zhí)行finally塊中的代碼,因為System.exit(0)會終止當(dāng)前運行的Java虛擬機,程序會在虛擬機終止前結(jié)束執(zhí)行。18捕獲異常例子public class Try1public static void main(String args)int i=0;int a=5,6,7,8; try for(i=0;i=4;i+) System.out.println(a+i+=+ai); System.out.println(3/0=+(3/0); catch(ArrayIndexOutOfBoundsException e) System.out.
21、println(數(shù)組異常數(shù)組異常:+e.toString(); catch(Exception e) System.out.println(異常異常:+e.toString(); finally System.out.println(“程序運行結(jié)束程序運行結(jié)束”); 注意l當(dāng)產(chǎn)生異常時,程序從上到下依次判斷該異常是否是該當(dāng)產(chǎn)生異常時,程序從上到下依次判斷該異常是否是該catchcatch(Exception_x eException_x e)塊中)塊中Exception_xException_x類或其子類對象。若是,則認(rèn)為類或其子類對象。若是,則認(rèn)為相匹配,執(zhí)行相應(yīng)的處理。因此,相匹配,執(zhí)行相
22、應(yīng)的處理。因此,安排安排catchcatch語句時,語句時,catchcatch的異常應(yīng)的異常應(yīng)符合子類在前,父類在后;從特殊到一般的原則。符合子類在前,父類在后;從特殊到一般的原則。l如果沒有異常產(chǎn)生,所有的如果沒有異常產(chǎn)生,所有的catchcatch塊都被略過不執(zhí)行。塊都被略過不執(zhí)行。l也可以用一個也可以用一個catchcatch語句處理多個異常類型,這時它的異常類型參數(shù)應(yīng)語句處理多個異常類型,這時它的異常類型參數(shù)應(yīng)該是這多個異常類型的父類。該是這多個異常類型的父類。l程序設(shè)計中要根據(jù)具體的情況來選擇程序設(shè)計中要根據(jù)具體的情況來選擇catchcatch語句的異常處理類型。語句的異常處理類型
23、。 19思考public class Try1 public static void main(String args) int i = 0, sum = 0, n = 0; int a = 5, 6, 7, 8 ; try for (i = 0; i = 5; i+) System.out.println(ai); sum += ai; System.out.println(平均值平均值 + (sum / n); catch (Exception e) System.out.println(異常異常: + e.toString(); catch (ArrayIndexOutOfBoundsE
24、xception e) System.out.println(數(shù)組異常數(shù)組異常: + e.toString(); 將上例中兩個處理異常的順序倒過來,對嗎?五、聲明拋出異常五、聲明拋出異常 throwsthrowsl聲明異常是一個說明性的子句,只能加在方法頭部的后邊。聲明異常是一個說明性的子句,只能加在方法頭部的后邊。 格式:返回類型格式:返回類型 方法名(方法名( 參數(shù)列表參數(shù)列表 )throws throws l一個方法聲明拋出異常,表示該方法一個方法聲明拋出異常,表示該方法可能可能拋出所聲明的異常,從而要拋出所聲明的異常,從而要求該求該方法的調(diào)用者方法的調(diào)用者,在程序中對這些異常加以注意和
25、處理(如用,在程序中對這些異常加以注意和處理(如用try-try-catch-finallycatch-finally)。)。l若一個方法沒有聲明異常,則該方法仍可能會拋出異常,只不過這些若一個方法沒有聲明異常,則該方法仍可能會拋出異常,只不過這些異常不要求方法的調(diào)用者加以注意。異常不要求方法的調(diào)用者加以注意。l即使一個方法聲明拋出異常,該方法仍可能拋出不在聲明列表之中的即使一個方法聲明拋出異常,該方法仍可能拋出不在聲明列表之中的異常。異常。21六、手動拋出異常六、手動拋出異常(throw語句)l手動拋出異常手動拋出異常 格式:格式:throw throw ; 其中:異常對象必須是其中:異常對
26、象必須是ThrowableThrowable類或其子類的對象,任何從類或其子類的對象,任何從ThrowableThrowable派生的類都可以用派生的類都可以用throwthrow語句拋出,語句拋出, 例如:例如:throw new Exceptionthrow new Exception(“這是一個異常這是一個異?!保?;); throw new Stringthrow new String(“能拋出異常嗎?能拋出異常嗎?”);); /錯誤錯誤 throw new throw new MyException(“someMyException(“some infomationinfomation
27、”);”);l拋出異常用來表明程序遇到的錯誤無法正常執(zhí)行而需要異常處理拋出異常用來表明程序遇到的錯誤無法正常執(zhí)行而需要異常處理l異??梢杂僧惓?梢杂蓆rytry塊中的語句拋出塊中的語句拋出l也可以從被也可以從被trytry塊中調(diào)用的方法中拋出塊中調(diào)用的方法中拋出l異常拋出點后的代碼在拋出異常后不再執(zhí)行異常拋出點后的代碼在拋出異常后不再執(zhí)行, ,即即異常的拋出終止了塊的異常的拋出終止了塊的執(zhí)行執(zhí)行22throws是聲明可能拋出異常,真正拋出異常是由throw完成。Throwable類的常用方法l構(gòu)造方法構(gòu)造方法lThrowableThrowable() ()lThrowable(StringTh
28、rowable(String message) message)l成員方法成員方法lString String toStringtoString() ()/返回包含異常描述的返回包含異常描述的StringString對象對象lString String getMessagegetMessage() () /返回返回JavaJava的標(biāo)準(zhǔn)錯誤信息的標(biāo)準(zhǔn)錯誤信息lgetStackTracegetStackTrace() /() /取到異常拋出的棧信息取到異常拋出的棧信息lvoid void printStackTraceprintStackTrace() /() /顯示標(biāo)準(zhǔn)的錯誤信息和導(dǎo)致異常發(fā)生
29、顯示標(biāo)準(zhǔn)的錯誤信息和導(dǎo)致異常發(fā)生的方法調(diào)用記錄的方法調(diào)用記錄23示例:拋出異常lpublic class DivException l public double method() throws Exceptionl int a,b;l Scanner sc=new Scanner(System.in);l System.out.println(請輸入請輸入a,b的值的值:);l a=sc.nextInt();l b=sc.nextInt();l if(b=0)l throw new Exception();l elsel return a/b;l l lpublic static void
30、main(String args) throws Exception /第一種處理方式第一種處理方式:繼續(xù)拋出繼續(xù)拋出l DivException d=new DivException();l d.method();/此方法的調(diào)用者必須對拋出的異常做處理,要么繼續(xù)拋出,要么用此方法的調(diào)用者必須對拋出的異常做處理,要么繼續(xù)拋出,要么用try進(jìn)行處理進(jìn)行處理l lpublic static void main(String args) DivException d=new DivException(); try d.method(); catch(Exception e) System.out.p
31、rintln(除數(shù)不能為0); e.printStackTrace(); /第二種處理方式,用try進(jìn)行處理25須查異常和免檢異常l須檢查的異常須檢查的異常lThrowable、Exceptionl免檢的異常免檢的異常lError、RuntimeExceptionl當(dāng)在一個方法的代碼中拋出一個須查異常時,這個異?;蛘弑环椒ㄖ械漠?dāng)在一個方法的代碼中拋出一個須查異常時,這個異常或者被方法中的try-catch結(jié)構(gòu)捕獲,或者在方法的結(jié)構(gòu)捕獲,或者在方法的throws語句中聲明語句中聲明l編譯器檢查程序保證所有須檢查的異常都被程序顯式的處理編譯器檢查程序保證所有須檢查的異常都被程序顯式的處理l對須查異
32、常,方法的調(diào)用者一定要在程序中明確加以處理,或在方對須查異常,方法的調(diào)用者一定要在程序中明確加以處理,或在方法后再次聲明這些異常。法后再次聲明這些異常。l當(dāng)須查異常沒有被拋出當(dāng)須查異常沒有被拋出(throws)或捕獲或捕獲(try.catch)時,會引起編譯錯誤。時,會引起編譯錯誤。ThrowableErrorExceptionExceptionRuntimeException不要檢查不要檢查要檢查要檢查七、定義自己的異常類七、定義自己的異常類( (了解了解) )l聲明一個新的異常類,必須從聲明一個新的異常類,必須從Java已定義的異常類繼承,已定義的異常類繼承,通常從通常從Exception
33、及其子類(如及其子類(如IOException等)繼承。等)繼承。l為新的異常類定義屬性和方法為新的異常類定義屬性和方法,或重載父類的屬性和方法,或重載父類的屬性和方法,使這些屬性和方法能夠體現(xiàn)該類所對應(yīng)的錯誤的信息。使這些屬性和方法能夠體現(xiàn)該類所對應(yīng)的錯誤的信息。l從從Exception或或RuntimeException派生派生l區(qū)分須查的異常和運行時異常區(qū)分須查的異常和運行時異常l當(dāng)滿足一定條件則拋出當(dāng)滿足一定條件則拋出(throw)自定義異常自定義異常l拋出自定義異常的方法必須聲明拋出異常拋出自定義異常的方法必須聲明拋出異常(throws)l在調(diào)用該方法的程序塊中捕獲自定義異常在調(diào)用該
34、方法的程序塊中捕獲自定義異常2627定義自己的異常類class MyException extends Exception /自定義異常 public MyException() /構(gòu)造方法 public MyException(String msg) super(msg); /調(diào)用父類構(gòu)造方法public class Inheriting public static void f( ) throws MyException /必須聲明拋出異常必須聲明拋出異常 System.out.println(Throwing MyException from f(); throw new MyExcep
35、tion(); /拋出自定義異常 public static void main(String args) try f(); /處理自定義異常 catch(MyException e) e.printStackTrace(); /end of main() /end of class Inheriting繼承自Exception28例子:計算兩個數(shù)之和class NumberRangeException extends NumberFormatException public NumberRangeException() super(); /構(gòu)造方法 public NumberRangeExc
36、eption(String msg) super(msg); /構(gòu)造方法public class SumStr public String sum(String str1, String str2) throws NumberRangeException /聲明拋出異常聲明拋出異常 int int1 = Integer.parseInt(str1); int int2 = Integer.parseInt(str2); if( (int1 20) | (int2 20) ) throw new NumberRangeException /拋出異常拋出異常 (Numbers not within
37、 the specified range.); return Integer.toString(int1 + int2);29例子:計算兩個數(shù)之和public static void main(String args) try String s = sum(args0, args1); System.out.println(“相加結(jié)果:” + s); catch (NumberRangeException e) System.out.println(“錯誤:” + e.getMessage(); catch (Exception e) e.printStackTrace(); 30例子:余額處
38、理l在定義銀行類時,若取錢數(shù)大于余額則作為異常處理在定義銀行類時,若取錢數(shù)大于余額則作為異常處理( (InsufficientFundsExceptionInsufficientFundsException) )。l產(chǎn)生異常的條件是余額少于取款額,因此是否拋出異常要先判斷該條產(chǎn)生異常的條件是余額少于取款額,因此是否拋出異常要先判斷該條件。件。l確定產(chǎn)生異常的方法,應(yīng)該在取款方法(確定產(chǎn)生異常的方法,應(yīng)該在取款方法(withdrawalwithdrawal)中產(chǎn)生異常)中產(chǎn)生異常InsufficientFundsExceptionInsufficientFundsException 。l處理異常安排在調(diào)用處理異常安排在調(diào)用withdrawalwithdrawal的時候,因此的時候,因此withdrawalwithdrawal方法要聲方法要聲明異常,由調(diào)用它的方法捕獲并處理。明異常,由調(diào)用它的方法捕獲并處理。31例子:余額處理class InsufficientFundsException extends Excepti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保證書范本秘籍3篇
- 安全工作優(yōu)化建議3篇
- 二手車過戶委托書樣式3篇
- 廣告投放新平臺3篇
- 農(nóng)村線上教學(xué)總結(jié)(4篇)
- 臺州市下屬事業(yè)單位選聘工作人員筆試真題2024
- 毛皮制品生產(chǎn)設(shè)備操作考核試卷
- 2024年呼倫貝爾市政務(wù)服務(wù)與數(shù)據(jù)管理局所屬事業(yè)單位考試真題
- 寵物醫(yī)療倫理與道德考核試卷
- 兒童口腔清潔用品教育意義評估考核試卷
- 美國加征關(guān)稅從多個角度全方位解讀關(guān)稅課件
- “皖南八?!?024-2025學(xué)年高一第二學(xué)期期中考試-英語(譯林版)及答案
- 一例脂肪液化切口的護(hù)理
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 【MOOC】機械原理-西北工業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計-畢業(yè)論文
- 煤礦安全監(jiān)控系統(tǒng)設(shè)備管理報廢制度
- 機關(guān)事業(yè)單位退休人員養(yǎng)老金領(lǐng)取資格確認(rèn)表
- 第五屆“國藥工程杯”全國大學(xué)生制藥工程設(shè)計競賽
- 柔性主動防護(hù)網(wǎng)分項工程質(zhì)量檢驗評定表
- 中機2015~2016年消防系統(tǒng)維保養(yǎng)護(hù)年度總結(jié)報告
評論
0/150
提交評論