




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、java異常(習(xí)題)Key Point* 異常的概念和分類* 異常的產(chǎn)生和傳遞* 異常的處理* 自定義異常練習(xí)1 .填空J(rèn)ava中所有的錯誤都繼承自 類;在該類的子類中,類表示嚴(yán)重的底層錯誤,對于這類錯誤一般處理的方式是 ;類表示例外、異常。2 .查api,填空異常類java.rmi.AlreadyBoundException ,從分類上說,該類屬于 (已檢查|未檢查)異常,從處理方式上說,對這種異常 ;異常類java.util.regex.PatternSyntaxException ,從分類上說,該類屬于 (已檢 查|未檢查)異常,從處理方式上說,對這種異常 。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) /拋出一個 NullPointerException else /拋出一個 ClassCastException/并設(shè)定詳細(xì)信息為類型轉(zhuǎn)換出錯”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時,
6、輸出的結(jié)果分別是什么?5 .(自定義異常)創(chuàng)建兩個自定義異常類MyExceptionl和MyException2。要求:1) MyExceptionl為已檢查異常,MyException2為未檢查異常2)這兩個異常均具有兩個構(gòu)造函數(shù),一個無參,另一個帶字符串參數(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 )代碼改錯。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時,輸出結(jié)果為 ,當(dāng)讀入的b為0時,輸出結(jié)果為12. * (try-finally )寫出下面代碼運行的結(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;/讀入一個整數(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. * (自定義異常)完成某個計費系統(tǒng)的用戶登錄和注冊模塊,要求如下:1) 創(chuàng)建一個User類,包括:用戶登錄名(username)、密碼(password)、用戶真實姓名(name)、電子郵件地址(email)屬性和相應(yīng)
16、的構(gòu)造方法及set/get方法。2) 創(chuàng)建兩個自定義異常類,一個 LoginException,表示登錄異常。一個RegisterException,表示注冊異常。自定義的兩個異常,都要求有一個接受字符串類型參數(shù)的構(gòu)造方法。3)創(chuàng)建一個UserBiz接口,該接口中定義兩個方法:void register(String username, String password, String password2, String name, String email) throws RegisterException / 用戶注冊 void login(String username, String p
17、assword) throws LoginException / 用戶登錄其中register方法接受兩個password參數(shù),原因是:在用戶注冊時,需要輸入兩遍 password,只有兩次輸入的 password 一致,才允許注冊。4)創(chuàng)建UserBiz接口的實現(xiàn)類。其中為該實現(xiàn)類創(chuàng)建一個屬性,該屬性為一個 Map,用來保存已注冊的用戶信息。Map的鍵為用戶登錄名,值為登錄名對應(yīng)的User對象。初始,情況下, Map中保存的對象為以下兩個:用戶名密碼真實姓名電子郵件/admin admin Administrator admin/tom cat tomcat tomcatregister方法
18、在以下兩種情況下拋出異常:1) username在Map中已存在2) 兩次輸入的password不一致login方法在以下兩種情況下拋出異常:1) username 不存在2) username 和 password 不匹配5) 創(chuàng)建一個UserView接口,該接口中定義兩個方法: void login();void register();6) 創(chuàng)建UserView接口的實現(xiàn)類。該實現(xiàn)類的login方法中,利用命令行,讓用戶輸入用戶名和密碼,之后調(diào)用UserBiz中的login方法。部分代碼如下:void login()System.out.println(請輸入用戶名:”);String u
19、sername =;System.out.println(請輸入密碼”);String password =;調(diào)用UserBiz中的login方法該類的register方法采用類似的方法,讓用戶輸入注冊時需要的信息,然后調(diào)用UserBiz 中的 register 方法。注意:1、密碼應(yīng)該讓用戶輸入兩遍。2、 UserViewImpl中應(yīng)當(dāng)有一個 UserBiz類型的屬性7)編寫測試代碼。類圖如下:.呻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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏電站節(jié)能改造與運維服務(wù)承包協(xié)議
- 廢舊金屬回收與環(huán)保技術(shù)研發(fā)合作協(xié)議
- 智能家居電商3D產(chǎn)品模型設(shè)計與用戶反饋服務(wù)協(xié)議
- 跨界新能源汽車電池梯次利用環(huán)保產(chǎn)業(yè)合作協(xié)議
- 購物中心運動品牌區(qū)品牌入駐與委托經(jīng)營合同
- 網(wǎng)絡(luò)游戲虛擬道具設(shè)計版權(quán)授權(quán)及衍生品開發(fā)協(xié)議
- 抖音直播平臺內(nèi)容創(chuàng)作者權(quán)益保障協(xié)議
- 箱包鞋帽五金配件品牌授權(quán)與銷售合作協(xié)議
- 產(chǎn)業(yè)園區(qū)廠房租賃及人才引進(jìn)合作協(xié)議
- 模具行業(yè)技術(shù)改造質(zhì)量檢測與改進(jìn)服務(wù)協(xié)議
- 上海市徐匯區(qū)2025屆八下物理期末考試試題含解析
- Java高級軟件開發(fā)面試題及答案
- 3.4 羧酸的衍生物 課件高二下學(xué)期化學(xué)人教版(2019)選擇性必修3
- 2025年消防安全培訓(xùn)考試試卷及完整答案
- 2025年信息科技與創(chuàng)新能力考核試題及答案
- 2025年智慧城市建設(shè)相關(guān)知識考試試卷及答案
- 2025年4月自考00522英語國家概況答案及評分參考
- 2025年江西南昌初三一模中考語文試卷試題(含答案詳解)
- 2025年吉林省長春市中考一模歷史試題(原卷版+解析版)
- 2024年安徽演藝集團(tuán)有限責(zé)任公司招聘筆試真題
- 天津2025年天津市面向昌都籍未就業(yè)少數(shù)民族高校畢業(yè)生招聘事業(yè)單位人員筆試歷年參考題庫附帶答案詳解
評論
0/150
提交評論