Java异常习题共11页.docx

上传人:b****1 文档编号:1744931 上传时间:2023-05-01 格式:DOCX 页数:16 大小:478.95KB
下载 相关 举报
Java异常习题共11页.docx_第1页
第1页 / 共16页
Java异常习题共11页.docx_第2页
第2页 / 共16页
Java异常习题共11页.docx_第3页
第3页 / 共16页
Java异常习题共11页.docx_第4页
第4页 / 共16页
Java异常习题共11页.docx_第5页
第5页 / 共16页
Java异常习题共11页.docx_第6页
第6页 / 共16页
Java异常习题共11页.docx_第7页
第7页 / 共16页
Java异常习题共11页.docx_第8页
第8页 / 共16页
Java异常习题共11页.docx_第9页
第9页 / 共16页
Java异常习题共11页.docx_第10页
第10页 / 共16页
Java异常习题共11页.docx_第11页
第11页 / 共16页
Java异常习题共11页.docx_第12页
第12页 / 共16页
Java异常习题共11页.docx_第13页
第13页 / 共16页
Java异常习题共11页.docx_第14页
第14页 / 共16页
Java异常习题共11页.docx_第15页
第15页 / 共16页
Java异常习题共11页.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java异常习题共11页.docx

《Java异常习题共11页.docx》由会员分享,可在线阅读,更多相关《Java异常习题共11页.docx(16页珍藏版)》请在冰点文库上搜索。

Java异常习题共11页.docx

Java异常习题共11页

java异常(yìcháng)(习题)

KeyPoint

*异常的概念和分类

*异常的产生和传递

*异常的处理

*自定义异常

练习

1.填空

Java中所有的错误都继承自______类;在该类的子类中,

_______类表示严重的底层错误,对于(duìyú)这类错误一般处理的方式是___________;

_______类表示例外、异常。

2.查api,填空(tiánkòng)

异常类java.rmi.AlreadyBoundException,从分类上说,该类属于__________(已检查|

未检查)异常,从处理方式上说,对这种异常___________________;

异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于_________(已检

查|未检查)异常,从处理方式上说,对这种异常__________________。

3.(异常的产生)把下面代码补充完整

packageexception;

publicclassTestThrow{

publicstaticvoidmain(Stringargs[]){

throwException(10);

}

publicstaticvoidthrowException(intn){

if(n==0){

//抛出一个NullPointerException

}else{

//抛出一个ClassCastException

//并设定详细信息为“类型转换出错”

}

}

}

4.(try-catch-finally)有如下(rúxià)代码:

importjava.io.*;

importjava.sql.*;

classTestException{

publicstaticvoidmain(Stringargs[]){

System.out.println("main1");

intn;

//读入n

ma(n);

System.out.println("main2");

}

publicstaticvoidma(intn){

try{

System.out.println("ma1");

mb(n);

System.out.println("ma2");

}catch(EOFExceptione){

System.out.println("CatchEOFException");

}catch(IOExceptione){

System.out.println("CatchIOException");

}catch(SQLExceptione){

System.out.println("CatchSQLException");

}catch(Exceptione){

System.out.println("CatchException");

}finally{

System.out.println("Infinally");

}

}

publicstaticvoidmb(intn)throwsException{

System.out.println("mb1");

if(n==1)

thrownewEOFException();

if(n==2)

thrownewFileNotFoundException();

if(n==3)

thrownewSQLException();

if(n==4)

thrownewNullPointerException();

System.out.println("mb2");

}

}

问:

当读入的n分别(fēnbié)为1,2,3,4,5时,输出的结果分别是什么?

5.(自定义异常)创建两个(liǎnɡɡè)自定义异常类MyException1和MyException2。

要求:

1)MyException1为已检查异常,MyException2为未检查异常

2)这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生

异常的详细信息。

6.(自定义异常(yìcháng))在上一题的基础上,把下面代码补充完整。

publicclassTestMyException{

publicstaticvoidmain(Stringargs[]){

intn;

//读入n

try{

m(n);

}catch(MyException1ex1){

//输出ex1详细的方法调用栈信息

}catch(MyException2ex2){

//输出ex2的详细信息

//并把ex2重新抛出

}

}

publicstaticvoidm(intn){//声明抛出MyException1

if(n==1){

//抛出MyException1

//并设定其详细信息为“n==1”

}else{

//抛出MyException2

//并设定其详细信息为“n==2”

}

}

}

7.(try-catch)代码改错。

classMyException{

}

classTestException{

publicstaticvoidmain(Stringargs[]){

ma();

}

publicstaticintma(){

try{

m();

return100;

}catch(Exceptione){

System.out.println("Exception");

}catch(ArithmeticExceptione){

System.out.println("ArithmeticException");

}

}

publicstaticvoidm(){

thrownewMyException();

}

}

8.(方法覆盖)有如下(rúxià)代码

classSuper{

publicvoidma()throwsIOException{

}

}

interfaceIA{

voidmb();

}

classMySubextendsSuperimplementsIA{

publicvoidma()//1_________

{

}

publicvoidmb()//2_________

{

}

}

问:

在//1处,填入以下________代码可以编译通过,在//2处,填入_________代码可以编译

通过。

A.throwsjava.io.IOException

B.throwsjava.io.FileNotFoundException,java.io.EOFException

C.throwsjava.sql.SQLException

D.不能抛出任何(rènhé)异常。

9.*(异常处理)有如下(rúxià)代码

importjava.io.*;

importjava.sql.*;

publicclassTestTryCatch{

publicstaticvoidmain(Stringargs[]){

try{

ma(10);

System.out.println("NoException");

}catch(EOFExceptionex1){

System.out.println("ex1");

}catch(IOExceptionex2){

System.out.println("ex2");

}catch(SQLExceptionex3){

System.out.println("ex3");

}

}

publicstaticvoidma(intn)throwsException{

if(n==1){

thrownewIOException();

}elseif(n==2){

thrownewEOFException();

}elseif(n==3){

throwsnewSQLException();

}

}

}

选择(xuǎnzé)正确答案:

A.编译不通过

B.编译通过,输出NoException

C.编译通过,输出ex1

D.编译通过,输出ex2

E.编译通过,输出ex3

10.*(try-catch,局部变量)有如下(rúxià)代码

publicclassTestTryCatch{

publicstaticvoidmain(Stringargs[]){

System.out.println(ma());

}

publicstaticintma(){

intn;

try{

n=10/0;

}catch(Exceptione){

}

returnn;

}

}

选择正确答案:

A.编译不通过(tōngguò)

B.编译通过,输出-1

C.编译通过,输出0

11.*(try-catch-finally)有如下(rúxià)代码

publicclassTestFinally{

publicstaticvoidmain(Stringargs[]){

System.out.println(ma());

}

publicstaticintma(){

intb=0;

//读入b

try{

intn=100;

returnn/b;

}catch(Exceptione){

return10;

}finally{

return100;

}

}

}

在ma中,当读入的b为100时,输出结果(jiēguǒ)为____,当读入的b为0时,输出结果为

_____。

12.*(try-finally)写出下面代码运行的结果

publicclassTestTryFinally{

publicstaticvoidmain(Stringargs[]){

try{

ma();

}catch(Exceptionex1){

}

}

publicstaticvoidma()throwsException{

intn=10;

intb;

//读入一个整数b

try{

System.out.println("ma1");

intresult=n/b;

System.out.println("ma2"+result);

}finally{

System.out.println("InFinally");

}

}

}

在ma中,读入整数b,如果(rúguǒ)读入的值为10,则输出:

如果读入的值为0,则输出:

13.*(方法覆盖)

classMySuper{

publicvoidm()throwsIOException{

}

}

classMySubextendsMySuper{

publicvoidm()throwsEOFException{

}

}

classMySub2extendsMySub{

publicvoidm()throwsFileNotFoundException{

}

}

以上代码是否能编译通过?

如果不能,应该(yīnggāi)如何修改?

14.*(自定义异常)完成某个(mǒuɡè)计费系统的用户登录和注册模块,要求如下:

1)创建一个User类,包括:

用户登录名(username)、密码(password)、用户真实姓

名(name)、电子邮件地址(email)属性和相应的构造方法及set/get方法。

2)创建两个自定义异常类,一个LoginException,表示登录异常。

一个RegisterException,

表示注册异常。

自定义的两个异常,都要求有一个接受字符串类型参数的构造方法。

3)创建一个UserBiz接口,该接口中定义两个方法:

voidregister(Stringusername,Stringpassword,Stringpassword2,

Stringname,Stringemail)throwsRegisterException//用户注册

voidlogin(Stringusername,Stringpassword)throwsLoginException//用户登录

其中register方法接受两个password参数,原因是:

在用户注册时,需要输入两遍

password,只有两次输入的password一致,才允许注册。

4)创建UserBiz接口的实现(shíxiàn)类。

其中

为该实现类创建一个属性,该属性为一个Map,用来保存已注册的用户信息。

Map

的键为用户登录名,值为登录名对应的User对象。

初始情况下,Map中保存的对

象为以下两个:

用户名密码真实姓名电子邮件

//adminadminAdministrator admin@

//tomcattomcat tomcat@

register方法在以下两种情况下抛出异常:

1)username在Map中已存在

2)两次输入的password不一致

login方法在以下两种情况下抛出异常:

1)username不存在

2)username和password不匹配

5)创建一个UserView接口,该接口中定义两个方法:

voidlogin();

voidregister();

6)创建UserView接口的实现类。

该实现类的login方法中,利用命令行,让用户输入用户名和密码,之后调用UserBiz

中的login方法。

部分代码如下:

voidlogin(){

System.out.println(“请输入用户名:

”);

Stringusername=;

System.out.println(“请输入密码”);

Stringpassword=;

//调用UserBiz中的login方法

}

该类的register方法采用类似的方法,让用户输入注册时需要的信息,然后调用

UserBiz中的register方法。

注意:

1、密码应该让用户输入两遍。

2、UserViewImpl中应当(yīngdāng)有一个UserBiz类型的属性

7)编写测试代码。

类图如下:

 

 

15.**(异常(yìcháng)的捕获和抛出)有以下代码:

importjava.io.*;

importjava.sql.*;

publicclassTestMyException{

publicstaticvoidmain(Stringargs[]){

try{

System.out.println("main1");

ma();

System.out.println("main2");

}catch(Exceptione){

System.out.println("CatchExceptioninmain");

System.out.println(e.getMessage());

}

}

publicstaticvoidma()throwsIOException{

try{

System.out.println("ma1");

mb();

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()throwsSQLException{

thrownewSQLException("sqlexceptioninmb");

}

}

问:

该程序输出结果(jiēguǒ)是什么?

16.**(异常的捕获和抛出)有以下代码

publicclassTestException{

publicstaticvoidmain(Stringargs[]){

try{

System.out.println("main1");

ma();

System.out.println("main2");

}catch(Exceptione){

System.out.println("InCatch");

}

}

publicstaticvoidma(){

System.out.println("ma1");

thrownewNullPointerException();

System.out.println("ma2");

}

}

选择正确答案:

A.编译出错

B.编译正常,输出main1ma1InCatch

C.编译正常,运行(yùnxíng)时出错

17.**(异常的捕获和抛出)有如下代码

classTestException{

publicstaticvoidmain(Stringargs[]){

try{

ma();

}

catch(Exceptione){

}

}

publicstaticvoidma()throwsIOException{

}

}

下面哪些(nǎxiē)代码放在处可以编译通过?

A.catch(NullPointerExceptionnpe){}

B.catch(IOExceptionioe){}

C.catch(SQLExceptionsqle){}

内容摘要

(1)java异常(习题)

练习

1.填空

Java中所有的错误都继承自______类

(2)异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于_________(已检

查|未检查)异常,从处理方式上说,对这种异常__________________

(3)其中

为该实现类创建一个属性,该属性为一个Map,用来保存已注册的用户信息

(4)部分代码如下:

voidlogin(){

System.out.println(“请输入用户名:

”)

(5)类图如下:

 

 

15.**(异常的捕获和抛出)有以下代码:

问:

该程序输出结果是什么

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2