版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、java異常(習(xí)題)Key Point* 異常的概念和分類* 異常的產(chǎn)生和傳遞* 異常的處理* 自定義異常練習(xí)1 .填空J(rèn)ava中所有的錯(cuò)誤都繼承自 類;在該類的子類中,類表示嚴(yán)重的底層錯(cuò)誤,對(duì)于這類錯(cuò)誤一般處理的方式是 ;類表示例外、異常。2 .查api,填空異常類java.rmi.AlreadyBoundException ,從分類上說,該類屬于 (已檢查|未檢查)異常,從處理方式上說,對(duì)這種異常 ;異常類java.util.regex.PatternSyntaxException ,從分類上說,該類屬于 (已檢 查|未檢查)異常,從處理方式上說,對(duì)這種異常 。3 .(異常的產(chǎn)生)把下面代
2、碼補(bǔ)充完整package exception;public class TestThrow public static void main(String args口) throwException (10);public static void throwException( int n) if (n = 0) /拋出一個(gè) NullPointerException else /拋出一個(gè) ClassCastException/并設(shè)定詳細(xì)信息為類型轉(zhuǎn)換出錯(cuò)”4 . (try-catch-finally )有如下代碼: import java.io.*;import java.sql.*;class
3、 TestException public static void main(String args) System.out.println("main 1");int n;/讀入nma(n);System.out.println("main2");public static void ma(int n) try System.out.println("ma1");mb(n);System.out.println("ma2"); catch (EOFException e) System.out.println(&
4、quot;Catch EOFException"); catch (IOException e) System.out.println("Catch IOException"); catch (SQLException e) System.out.println("Catch SQLException"); catch (Exception e) System.out.println("Catch Exception"); finally System.out.println("In finally");
5、public static void mb(int n) throws Exception System.out.println("mb1");if (n = 1)throw new EOFException();if (n = 2)throw new FileNotFoundException();if (n = 3)throw new SQLException();if (n = 4)throw new NullPointerException();System.out.println("mb2");問:當(dāng)讀入的n分別為1, 2, 3, 4, 5時(shí),
6、輸出的結(jié)果分別是什么?5 .(自定義異常)創(chuàng)建兩個(gè)自定義異常類MyExceptionl和MyException2。要求:1) MyExceptionl為已檢查異常,MyException2為未檢查異常2)這兩個(gè)異常均具有兩個(gè)構(gòu)造函數(shù),一個(gè)無參,另一個(gè)帶字符串參數(shù),參數(shù)表示產(chǎn)生 異常的詳細(xì)信息。6 .(自定義異常)在上一題的基礎(chǔ)上,把下面代碼補(bǔ)充完整。public class TestMyException public static void main(String args口)int n;/ 讀入ntry m(n); catch (MyException1 ex1) /輸出ex1詳細(xì)的方法調(diào)
7、用棧信息 catch (MyException2 ex2) / 輸出ex2的詳細(xì)信息/ 并把ex2重新拋出public static void m( int n) / 聲明拋出 MyException1if (n = 1) / 拋出 MyException1/并設(shè)定其詳細(xì)信息為“n = 1 ” else / 拋出 MyException2/并設(shè)定其詳細(xì)信息為“n = 2 ”7. (try-catch )代碼改錯(cuò)。class MyException class TestException public static ma();void main(String args) public stati
8、cint ma() try m();return100; catch (Exception e) System. out .println( "Exception" ); catch (ArithmeticException e) System. out .println( "ArithmeticException"); public static void m() throw new MyException(); 8 .(方法覆蓋)有如下代碼class Super public void ma() throws IOException interfac
9、e IA void mb();class MySub extends Super implements IA public void ma() / 1 public void mb() / 2 問:在/1處,填入以下 代碼可以編譯通過,在/2處,填入 代碼可以編譯 通過。A. throws java.io.IOExceptionB. throws java.io.FileNotFoundException, java.io.EOFExceptionC. throws java.sql.SQLExceptionD.不能拋出任何異常。9 . * (異常處理)有如下代碼import java.io.
10、*;import java.sql.*;public class TestTryCatch public static void main(String args) try ma(10);System.out.println("No Exception"); catch (EOFException ex1) System.out.println("ex1"); catch (IOException ex2) System.out.println("ex2"); catch (SQLException ex3) System.out.p
11、rintln("ex3");public static void ma(int n) throws Exception if (n = 1) throw new IOException(); else if (n = 2) throw new EOFException(); else if (n = 3) throws new SQLException();選擇正確答案:A.編譯不通過8. 編譯通過,輸出 No ExceptionC.編譯通過,輸出ex1D. 編譯通過,輸出 ex2E. 編譯通過,輸出 ex310. * t try-catch ,局部變量)有如下代碼publ
12、ic class TestTryCatch public static void main(String args) System. out .println( ma();public static int ma() int n;try n = 10 / 0; catch (Exception e) return n;選擇正確答案:A.編譯不通過B.編譯通過,輸出-1C.編譯通過,輸出011. * (try-catch-finally )有如下代碼public class TestFinally public static void main(String args口) System. out
13、 .println( ma();public static int ma() int b=0; / 讀入b try int n = 100;return n / b; catch (Exception e) return10; finally return100;L在ma中,當(dāng)讀入的b為100時(shí),輸出結(jié)果為 ,當(dāng)讀入的b為0時(shí),輸出結(jié)果為12. * (try-finally )寫出下面代碼運(yùn)行的結(jié)果public class TestTryFinally public static void main(String args口) try ma(); catch (Exception ex1) p
14、ublic static void ma() throws Exception int n = 10;int b;/讀入一個(gè)整數(shù)btry System. out .println( "ma1");int result = n / b;System. out .println( "ma2 "+ result); finally System. out .println( "In Finally" ); 在ma中,讀入整數(shù)b,如果讀入的值為10,則輸出: 如果讀入的值為0,則輸出:13.* (方法覆蓋)class MySuper publ
15、ic void m() throws IOException class MySub extends public void m() MySuperthrows EOFException class MySub2 extendsMySubpublic void m()throws FileNotFoundException 以上代碼是否能編譯通過?如果不能,應(yīng)該如何修改?14. * (自定義異常)完成某個(gè)計(jì)費(fèi)系統(tǒng)的用戶登錄和注冊(cè)模塊,要求如下:1) 創(chuàng)建一個(gè)User類,包括:用戶登錄名(username)、密碼(password)、用戶真實(shí)姓名(name)、電子郵件地址(email)屬性和相應(yīng)
16、的構(gòu)造方法及set/get方法。2) 創(chuàng)建兩個(gè)自定義異常類,一個(gè) LoginException,表示登錄異常。一個(gè)RegisterException,表示注冊(cè)異常。自定義的兩個(gè)異常,都要求有一個(gè)接受字符串類型參數(shù)的構(gòu)造方法。3)創(chuàng)建一個(gè)UserBiz接口,該接口中定義兩個(gè)方法:void register(String username, String password, String password2, String name, String email) throws RegisterException / 用戶注冊(cè) void login(String username, String p
17、assword) throws LoginException / 用戶登錄其中register方法接受兩個(gè)password參數(shù),原因是:在用戶注冊(cè)時(shí),需要輸入兩遍 password,只有兩次輸入的 password 一致,才允許注冊(cè)。4)創(chuàng)建UserBiz接口的實(shí)現(xiàn)類。其中為該實(shí)現(xiàn)類創(chuàng)建一個(gè)屬性,該屬性為一個(gè) Map,用來保存已注冊(cè)的用戶信息。Map的鍵為用戶登錄名,值為登錄名對(duì)應(yīng)的User對(duì)象。初始,情況下, Map中保存的對(duì)象為以下兩個(gè):用戶名密碼真實(shí)姓名電子郵件/admin admin Administrator admin/tom cat tomcat tomcatregister方法
18、在以下兩種情況下拋出異常:1) username在Map中已存在2) 兩次輸入的password不一致login方法在以下兩種情況下拋出異常:1) username 不存在2) username 和 password 不匹配5) 創(chuàng)建一個(gè)UserView接口,該接口中定義兩個(gè)方法: void login();void register();6) 創(chuàng)建UserView接口的實(shí)現(xiàn)類。該實(shí)現(xiàn)類的login方法中,利用命令行,讓用戶輸入用戶名和密碼,之后調(diào)用UserBiz中的login方法。部分代碼如下:void login()System.out.println(請(qǐng)輸入用戶名:”);String u
19、sername =;System.out.println(請(qǐng)輸入密碼”);String password =;調(diào)用UserBiz中的login方法該類的register方法采用類似的方法,讓用戶輸入注冊(cè)時(shí)需要的信息,然后調(diào)用UserBiz 中的 register 方法。注意:1、密碼應(yīng)該讓用戶輸入兩遍。2、 UserViewImpl中應(yīng)當(dāng)有一個(gè) UserBiz類型的屬性7)編寫測(cè)試代碼。類圖如下:.呻SMiy, 曲/:ymdptionR«giit»rEKCfptiCinUSrtl«Mirpl15.* (異常的捕獲和拋出)有以下代碼:importjava.io.*;
20、importjava.sql.*;publicclass TestMyException public staticvoid main(String args口)try System.out .println("main1");ma();System.out .println("main2");catch (Exception e) System.out .println("Catch Exception in main");System.out .println(e.getMessage();publicstaticvoid ma(
21、) throws IOException try System.out .println("ma1");mb();System.out .println("ma2"); catch (SQLException e) System. out .println("Catch SQLException in ma");throw new IOException(e.getMessage(); catch (Exception e) );System. out .println( "Catch Exception in ma"System. out .println(e.getMessage();)public static void mb() throws SQLException throw new SQLException( "sql exce
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《血液凈化質(zhì)量控制》課件
- 工會(huì)續(xù)簽合同的領(lǐng)導(dǎo)評(píng)語
- 《外部形態(tài)頭部》課件2
- 2025年甘肅道路客貨運(yùn)輸從業(yè)資格證b2考試題庫
- 2025年銀川貨運(yùn)從業(yè)資格證題目答案
- 《外出安全知識(shí)》課件
- 《食品安全風(fēng)險(xiǎn)監(jiān)測(cè)》課件
- 鐵路運(yùn)輸勞動(dòng)防護(hù)用品管理要求
- 酒店式公寓外墻修繕合同
- 保險(xiǎn)公司業(yè)務(wù)員聘用合同樣本
- 水果削皮機(jī)的工業(yè)工程設(shè)計(jì)論文
- 空壓站設(shè)備安裝施工組織設(shè)計(jì)方案(空壓站設(shè)備安裝)
- 屋面彩鋼板檁條安裝施工方案
- 肝癌患者的護(hù)理疑難病例討論記錄文本
- 四大經(jīng)典之溫病
- 石化裝置動(dòng)設(shè)備操作規(guī)程
- ?;◢u(海南儋州)民宿眾籌計(jì)劃書
- 注塑件通用技術(shù)條件
- 人大代表選舉主持詞_1
- KingSCADA初級(jí)教程工程安全和用戶管理
- 消防安裝工程質(zhì)量通病及防治措施
評(píng)論
0/150
提交評(píng)論