Java异常习题_第1页
Java异常习题_第2页
Java异常习题_第3页
Java异常习题_第4页
Java异常习题_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

kok电子竞技:文档简介

1、java异常(习题)KeyPoint* 异常的概念和分类* 异常的产生和传递* 异常的处理* 自定义异常练习1 .填空Java中所有的错误都继承自类;在该类的子类中,类表示严重的底层错误,对于这类错误一般处理的方式是;类表示例外、异常。2 .查api,填空异常类java.rmi.AlreadyBoundException,从分类上说,该类属于(已检查|未检查)异常,从处理方式上说,对这种异常;异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于(已检查|未检查)异常,从处理方式上说,对这种异常。3 .(异常的产生)把下面代码补充完整packa

2、geexception;publicclassTestThrowpublicstaticvoidmain(Stringargs口)throwException(10);publicstaticvoidthrowException(intn)if(n=0)/抛出一个NullPointerExceptionelse/抛出一个ClassCastException/并设定详细信息为类型转换出错”4 .(try-catch-finally)有如下代码:importjava.io.*;importjava.sql.*;classTestExceptionpublicstaticvoidmain(Strin

3、gargs)System.out.println("main1");intn;/读入nma(n);System.out.println("main2");publicstaticvoidma(intn)trySystem.out.println("ma1");mb(n);System.out.println("ma2");catch(EOFExceptione)System.out.println("CatchEOFException");catch(IOExceptione)System.ou

4、t.println("CatchIOException");catch(SQLExceptione)System.out.println("CatchSQLException");catch(Exceptione)System.out.println("CatchException");finallySystem.out.println("Infinally");publicstaticvoidmb(intn)throwsExceptionSystem.out.println("mb1");if

5、(n=1)thrownewEOFException();if(n=2)thrownewFileNotFoundException();if(n=3)thrownewSQLException();if(n=4)thrownewNullPointerException();System.out.println("mb2");问:当读入的n分别为1,2,3,4,5时,输出的结果分别是什么?5 .(自定义异常)创建两个自定义异常类MyExceptionl和MyException2。要求:1) MyExceptionl为已检查异常,MyException2为未检查异常2)这两个异常均

6、具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的详细信息。6 .(自定义异常)在上一题的基础上,把下面代码补充完整。publicclassTestMyExceptionpublicstaticvoidmain(Stringargs口)intn;/读入ntrym(n);catch(MyException1ex1)/输出ex1详细的方法调用栈信息catch(MyException2ex2)/输出ex2的详细信息/并把ex2重新抛出publicstaticvoidm(intn)/声明抛出MyException1if(n=1)/抛出MyException1/并设定其详细信息为“n=1

7、”else/抛出MyException2/并设定其详细信息为“n=2”7 .(try-catch)代码改错。classMyExceptionclassTestExceptionpublicstaticvoidmain(Stringargs)ma();publicstaticintma()trym();return100;catch(Exceptione)System.out.println("Exception");catch(ArithmeticExceptione)System.out.println("ArithmeticException");p

8、ublicstaticvoidm()thrownewMyException();8 .(方法覆盖)有如下代码classSuperpublicvoidma()throwsIOExceptioninterfaceIAvoidmb();classMySubextendsSuperimplementsIApublicvoidma()/1publicvoidmb()/2问:在/1处,填入以下代码可以编译通过,在/2处,填入代码可以编译通过。A. throwsjava.io.IOExceptionB. throwsjava.io.FileNotFoundException,java.io.EOFExcep

9、tionC. throwsjava.sql.SQLExceptionD.不能抛出任何异常。9 .*(异常处理)有如下代码importjava.io.*;importjava.sql.*;publicclassTestTryCatchpublicstaticvoidmain(Stringargs)tryma(10);System.out.println("NoException");catch(EOFExceptionex1)System.out.println("ex1");catch(IOExceptionex2)System.out.println(

10、"ex2");catch(SQLExceptionex3)System.out.println("ex3");publicstaticvoidma(intn)throwsExceptionif(n=1)thrownewIOException();elseif(n=2)thrownewEOFException();elseif(n=3)throwsnewSQLException();选择正确答案:A.编译不通过8 .编译通过,输出NoExceptionC.编译通过,输出ex1D. 编译通过,输出ex2E. 编译通过,输出ex310. *ttry-catch

11、,局部变量)有如下代码publicclassTestTryCatchpublicstaticvoidmain(Stringargs)System.out.println(ma();publicstaticintma()intn;tryn=10/0;catch(Exceptione)returnn;选择正确答案:A.编译不通过B.编译通过,输出-1C.编译通过,输出011. *(try-catch-finally)有如下代码publicclassTestFinallypublicstaticvoidmain(Stringargs口)System.out.println(ma();publicst

12、aticintma()intb=0;/读入btryintn=100;returnn/b;catch(Exceptione)return10;finallyreturn100;L在ma中,当读入的b为100时,输出结果为,当读入的b为0时,输出结果为12. *(try-finally)写出下面代码运行的结果publicclassTestTryFinallypublicstaticvoidmain(Stringargs口)tryma();catch(Exceptionex1)publicstaticvoidma()throwsExceptionintn=10;intb;/读入一个整数btrySys

13、tem.out.println("ma1");intresult=n/b;System.out.println("ma2"+result);finallySystem.out.println("InFinally");在ma中,读入整数b,如果读入的值为10,则输出:如果读入的值为0,则输出:13.*(方法覆盖)classMySuperpublicvoidm()throwsIOExceptionclassMySubextendspublicvoidm()MySuperthrowsEOFExceptionclassMySub2exten

14、dsMySubpublicvoidm()throwsFileNotFoundException以上代码是否能编译通过?如果不能,应该如何修改?14. *(自定义异常)完成某个计费系统的用户登录和注册模块,要求如下:1) 创建一个User类,包括:用户登录名(username)、密码(password)、用户真实姓名(name)、电子邮件地址(email)属性和相应的构造方法及set/get方法。2) 创建两个自定义异常类,一个LoginException,表示登录异常。一个RegisterException,表示注册异常。自定义的两个异常,都要求有一个接受字符串类型参数的构造方法。3)创建一个

15、UserBiz接口,该接口中定义两个方法:voidregister(Stringusername,Stringpassword,Stringpassword2,Stringname,Stringemail)throwsRegisterException/用户注册voidlogin(Stringusername,Stringpassword)throwsLoginException/用户登录其中register方法接受两个password参数,原因是:在用户注册时,需要输入两遍password,只有两次输入的password一致,才允许注册。4)创建UserBiz接口的实现类。其中为该实现类创建

16、一个属性,该属性为一个Map,用来保存已注册的用户信息。Map的键为用户登录名,值为登录名对应的User对象。初始,情况下,Map中保存的对象为以下两个:用户名密码真实姓名电子邮件/adminadminAdministratoradmin/tomcattomcattomcatregister方法在以下两种情况下抛出异常:1) username在Map中已存在2) 两次输入的password不一致login方法在以下两种情况下抛出异常:1) username不存在2) username和password不匹配5) 创建一个UserView接口,该接口中定义两个方法:voidlogin();voi

17、dregister();6) 创建UserView接口的实现类。该实现类的login方法中,利用命令行,让用户输入用户名和密码,之后调用UserBiz中的login方法。部分代码如下:voidlogin()System.out.println(请输入用户名:”);Stringusername=;System.out.println(请输入密码”);Stringpassword=;调用UserBiz中的login方法该类的register方法采用类似的方法,让用户输入注册时需要的信息,然后调用UserBiz中的register方法。注意:1、密码应该让用户输入两遍。2、UserViewImpl中

18、应当有一个UserBiz类型的属性7)编写测试代码。类图如下:'(lit!IdlV-serBrz*r-二了"1i山口4rp-h-r,.-OI-.:.;-1,-1?:XFMU、Mf;W濡。、.,.'':、;JJC口居/:,F:Jr-'.J£LoglrCxftptnR由itfrCEprortv喇tMaw”UwcVIew,力中口。再伺fr:工=匕l'.J-K-.UrcrVirwtfrpI15.*(异常的捕获和抛出)有以下代码:importjava.io.*;importjava.sql.*;publicclassTestMyExceptio

19、npublicstaticvoidmain(Stringargs口)trySystem.out.println("main1");ma();System.out.println("main2");catch(Exceptione)System.out.println("CatchExceptioninmain");System.out.println(e.getMessage();publicstaticvoidma()throwsIOExceptiontrySystem.out.println("ma1");mb

20、();System.out.println("ma2");catch(SQLExceptione)System.out.println("CatchSQLExceptioninma");thrownewIOException(e.getMessage();catch(Exceptione);System.out.println("CatchExceptioninma"System.out.println(e.getMessage();)publicstaticvoidmb()throwsSQLExceptionthrownewSQLE

21、xception("sqlexceptioninmb");)问:该程序输出结果是什么?16.*(异常的捕获和抛出)有以下代码publicclassTestExceptionpublicstaticvoidmain(Stringargs)trySystem.out.println("main1"ma();System.out.println("main2")catch(Exceptione)System.out.println("InCatch")publicstaticvoidma();System.out);.p

22、rintln("ma1"););thrownewNullPointerException();System.out.println("ma2");选择正确答案:A.编译出错B.编译正常,输出main1ma1InCatchC.编译正常,运行时出错17.*(异常的捕获和抛出)有如下代码classTestExceptionpublicstaticvoidmain(Stringargs口)tryma();)catch(Exceptione)publicstatic)voidma()throwslOException下面哪些代码放在处可以编译通过?A. catch(NullPointerExceptionnpe)B. catch(IOExceptionioe)C. catch(SQLExceptionsqle)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论