java考试题库第六章.docx

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

java考试题库第六章.docx

《java考试题库第六章.docx》由会员分享,可在线阅读,更多相关《java考试题库第六章.docx(18页珍藏版)》请在冰点文库上搜索。

java考试题库第六章.docx

java考试题库第六章

第六章异常和异常处理

一选择题

6-1.下列关于异常的描述中,错误的是(B)

A.异常是一种经过修正后程序仍可执行的错误

B.异常是一种程序在运行中出现的不可恢复执行的错误

C.不仅Java语言有异常处理,C++语言也有异常处理

D.出现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行

6-2.下列关于异常处理的描述中,错误的是(D)

A.程序运行时异常由Java虚拟机自动进行处理

B.使用try-catch-finally语句捕获异常

C.使用throw语句抛出异常

D.捕获到的异常只能用当前方法中处理,不能用其他方法中处理

6-3.下列关于try-catch-finally语句的描述中,错误的是(A)

A.try语句后面的程序段将给出处理异常的语句

B.catch()方法跟在try语句后面,它可以是一个或多个

C.catch()方法有一个参数,该参数是某种异常类的对象

D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用

6-4.下列关于抛出异常的描述中,错误的是(D)

A.捕捉到发生的异常可在当前方法中处理,也可以抛到调用该方法的方法中处理

B.在说明要抛出异常的方法时应加关键字throw<异常列表>

C.<异常列表>中可以有多个用逗号分隔的异常

D.抛出异常的方法中要使用下述抛出异常语句:

throw<异常名>;其中,<异常名>是异常类的类名

6-5.下列关于用户创建自己的异常描述中,错误的是(D)

A.创建自己的异常应先创建一个异常类

B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句

C.捕捉异常的方法是使用try-catch-finally语句格式

D.使用异常处理不会使整个系统更加安全和稳定

二判断题

6-1.异常是一种特殊的运行错误的对象。

(对)

6-2.异常处理可以使整个系统更加安全和稳定。

(对)

6-3.异常处理是在编译时进行的。

(错)

6-4.Java语言中异常类都是java.lang.Throwable的子类。

(对)

6-5.Throwable类有两个子类:

Error类和Exception类。

前者由系统保留,后者供应用程序使用。

(对)

6-6.异常通常是指Error类和Exception类。

(错)

6-7.Exception类只有一个子类为RuntimeException。

(错)

6-8.在异常处理中,出现异常和抛出异常是一回事。

(错)

6-9.运行时异常是在运行时系统检测并处理的。

(错)

6-10.使用try-catch-finally语句只能捕获一个异常。

(错)

6-11.捕获异常时try语句后面通常跟有一个或多个catch()方法用来处理try块内生成的异常事件。

(对)

6-12.使用finally语句的程序代码为该程序提供一个统一的的出口。

(对)

6-13.抛出异常的方法说明中要加关键字throws,并在该方法中还应添加throw语句。

(对)

6-14.创建异常类时要给出该异常类的父类。

(对)

6-15.如果异常类没有被捕获将会产生不正常的终止。

(对)

三分析程序的输出结果

6-1.Exer6_1.java

publicclassExer6_1

{

publicstaticvoidmain(Stringargs[])

{

intx=10,y=0;

intz=x/y;

System.out.println(“z=“+z);

}

}

该程序运行后,输出结果如图所示:

D:

\JAVA\XT>javaExer6_1

Exceptioninthread”main”java.lang.ArithmeticException:

/byzero

AtExer6_1.main

6>

6-2.Exer6_2.java

publicclassExer6_2

{

publicstaticvoidmain(Stringargs[])

{

intarray1[]={6,0,8};

for(inti=0;i

{

try

{

intd=100/array[i];

System.out.println(“\t正常:

d=“+d);

}

catch(ArithmeticExceptione)

{

System.out.println("\t算术异常");

}

catch(ArrayIndexOutOfBoundsExceptione)

{

System.out.println("\t下标越界异常");

}

finally

{

System.out.println("\t异常处理结束!

\n");

}

}

}

运行该程序后,输出如图所示

D:

\JAVA\XT>javaExer6_2

正常:

d=16

异常处理结束!

算术异常!

异常处理结束!

正常:

d=12

异常处理结束!

下标越界异常!

异常处理结束!

6-3Exer6_3.java

publicclassExer6_3

{

publicstaticvoidmain(Stringargs[])

{

intarray1[]={6,0,8};

for(inti=0;i<=array1.length;i++)

{

try

{

intd=100/array1[i];

System.out.println("\t正常:

d="+d);

}

catch(RuntimeExceptione)

{

System.out.println("\t异常:

"+e.toString());

}

finally

{

System.out.println("\t异常处理结束!

\n");

}

}

}

}

运行该程序后,输出结果如图所示:

D:

\JAVA\XT>javaExer6_3

正常:

d=16

异常处理结束!

异常:

java.lang.ArithmeticException:

/byzero

异常处理结束!

正常:

d=12

异常处理结束!

异常:

java.lang.ArrayIndexOutOfBoundsExcepiton:

3

异常处理结束!

6-4Exer6_4.java

publicclassExer6_4

{

publicstaticvoidTest()

{

inta[]=newint[3];

for(inti=0;i<=a.length;i++)

{

try

{

a[i]=i+5;

System.out.println("\t正常:

a["+i+"]="+a[i]);

}

catch(ArrayIndexOutOfBoundsExceptione)

{

System.out.println("\t异常:

+e.toString()");

throwe;

}

}

}

publicstaticvoidmain(Stringargs[])

{

try

{

Test();

}

finally

{

System.out.println("\t异常处理结束!

\n")

}

}

}

运行该程序后,输出结果如图:

D:

\JAVA\XT>javaExer6_4

正常:

a[0]=5

正常:

a[1]=6

正常:

a[2]=7

异常:

java.lang.ArrayIndexOutOfBoudsException:

3

异常处理结束!

Exceptioninthread“main”java.lang.ArrayIndexOutOfBoundsExcepiton:

3

atExer6_4.Test

10>

atExer6_4.main

24>

6-5Exer6_5.java

classmyExceptionextendsException

{

staticinta=0

myException(Strings)

{

super(s);

a++;

}

Stringshow()

{

return"自定义异常出现的次数:

"+a;

}

}

PublicclassExer6_5

{

staticvoidTest()throwsmyException

{

myExceptione;

e=newmyException("自定义异常\n");

throwe;

}

Publicstaticvoidmain(Stringargs[])

{

for(inti=0;i<3;i++)

{

try

{

Test();

}

catch(myExceptione)

{

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

System.out.println(e.toString);

}

}

}

}

运行该程序后,输出结果如图所示:

D:

\JAVA\XT>javaExer6_5

自定义异常出现的次数:

1

myException:

自定义异常

自定义异常出现的次数:

2

myException:

自定义异常

自定义异常出现的次数:

3

myException:

自定义异常

5.简单回答题

6-1检测异常事件必须使用什么语句?

答:

try语句

6-2catch()方法的作用是什么?

该方法用户能否调用?

答:

用来处理try块中检测出的异常事件。

6-3catch()方法中异常类型应与什么相符?

答:

与生成的异常事件类型相符。

6-4异常示被捕获到将会出现什么现象?

答:

try语句后边的惯常处理代码将不被执行,通常使用finally语句提供一个统一出口。

6-5在一个try语句的程序代码块中可以捕获多个异常吗?

答:

可以

6-6使用throw语句抛出的是类型还是对象?

答:

抛出的是对象。

6-7捕获到的异常还可以再抛出吗?

答:

可以。

6-8Finally语句块中的代码何时被执行?

答:

在异常事件处理的方法catch()执行后执行。

6-9语句throw的作用是什么?

答:

抛出所检测到的异常。

6-10异常类Exception的父类是什么?

答:

是Throwable类。

6.编程题

6-1编程实现下述异常,并输出显示适当的错误信息。

(1)数组下标越界异常ArrayIndexOutOfBoundsException类型。

例如,

charch[]=newchar[5];

ch[5]='m';//产生该类型异常

(2)对象转换异常ClassCastException类型。

例如,将对象a1转换为对象a2时,如果a1和a2不是同类,并且a1也不是a2的子类对象时,则产生该类型异常。

(3)引用空对象的变量和方法时产生NullPointerException异常类型。

例如,

intar[]=null;

System.out.println(ar.length);//产生该类异常

(1)关于数组下标越界异常ArrayIndexOutOfBoundsException请参照本书本章例6.1的程序,请读者自行编写。

(2)下面关于对象转换的例子。

程序内容如下:

publicclasspro6_1

{

publicstaticvoidmain(Stringargs[])

{

try{

M();

}

catch(ClassCastExceptione)

{

System.out.println("对象转换异常");

}

}

staticvoidM()throwsClassCastException

{

Objectobj=newObject();

intarr[]=(int[])(obj);

}

}

(3)编写处理异常程序如下:

publicclasspro6_2

{

publicstaticvoidmain(Stringargs[])

{

try{

intar[]=null;

System.out.println(ar.length);

}

catch(NullPointerExceptione)

{

System.out.println("Exception:

"+e);

}

}

}

运行该程序后,输出显示结果如下:

Exception:

java.Lang.NullPointerException.

6-2定义一个circle类,其中有求面积的方法,当圆的半径小于0时,抛出一个自定义的异常。

编程实现之:

程序内容如下;

classCircleextendsException

{

doubler;

Circle()

{}

Circle(doublei)

{r=i;}

publicdoublegetr()

{returnr;}

publicdoubleArea()

{

return3.1415*r*r;

}

}

publicclasspro6_3

{

publicstaticvoidmain(Stringargs[])

{

Circlec=newCircle(-3.0);

try

{

if(c.getr()<0)

{

Circleee=newCircle();

throwee;

}

System.out.println(c.Area());

}

catch(Circlee)

{

System.out.println("自定义异常:

"+e);

}

}

}

运行该程序后,输出显示如下结果:

自定义异常:

Circle

如果将语句

Circlec=newCircle(-3.0);

必为

Circlec=newCircle(3.0);

输出结果如何?

请读者上机试试。

6.5测试题

1.单选题

6-1下列关于异常和异常类的描述中,错误的是()。

A.异常是某种异常类的对象

B.异常类代表一种异常事件

C.异常对象中包含有发生异常事件的类型等重要信息

D.对待异常和处理就是简单地结束程序

6-2下列关于异常处理的描述中,错误的是()。

A.程序运行时出现的异常是通过系统默认的异常处理程序进行处理的

B.在程序中可以使用try-catch语句捕捉异常和处理异常事件

C.对于捕获的异常只能在当前方法中处理

D.使用throw语句可将异常抛出到调用当前方法的方法中处理

6-3下列关于用户创建自己的异常的描述中,错误的是()。

A.为了保证系统的稳定性,用户可以创建自己的异常和异常类

B.创建的异常类必须是Exception类的子类

C.在创建的异常类的类体中可以定义或重载其的属性和方法、

D.用户自定义的异常必须使用throw语句进行抛出

2.判断题

6-1异常不是致命错误。

6-2异常类Exception是Throwable类的子类,该类还派生出许多子类。

6-3catch()方法是用来捕捉和处理异常的,可使用多个该方法,其异常类型的先后顺序是无关的。

6-4用户在创建自己的异常时,通常在通过throw语句抛出异常。

6-5finally语句的程序段无论发生异常事件与否,它都是被执行的。

3.分析程序的输出结果

6-1程序内容如下:

publicclasstest6_1

{

publicstaticvoidmain(Stringargs[])

{

intarr[]={1,3,5,7,9};

inti=0;

while(i<6)

{

try

{

System.out.println(arr[i++]+1);

}

catch(ArrayIndexOutOfBoundsExceptione)

{

System.out.println("下标越界");

}

finally

{

System.out.println("ok");

}

}

}

}

6-2程序内容如下:

classmyExceptionextendsException

{

myExcepiton(Strings)

{

super(s);

}

}

publicclasstest6_2

{

publicstaticvoidmain(Stringargs[])

{

try

{

thrownewmyException("我自定义的异常");

}

catch(myExceptione)

{

e.printStackTrace();

}

}

}

4.编程题

读者自己定义一种异常类,并编程捕捉某种异常,输出异常信息。

5.简答题

已知:

下列try-catch-finally语句块中<语句2>将会引起一个异常,试回答下述问题。

try{

<语句1>

<语句2>

<语句3>

}

catch(<异常类名>e1){…}

catch(<异常类名>e2){…}

finally

{…}

<语句4>

(1)<语句3>会执行吗?

(2)如果异常被捕捉了,finally语句被执行吗?

(3)如果异常没被捕捉,finally语句被执行吗?

(4)无论异常是否被捕捉,<语句4>都被执行吗?

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

当前位置:首页 > 农林牧渔 > 林学

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

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