当前位置:文档之家› java考试题库第六章.docx

java考试题库第六章.docx

第六章异常和异常处理一选择题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.v异常列表〉中可以有多个用逗号分隔的异常D.抛岀异常的方法中要使用下述抛出异常语句:throw<异常名〉;其中,v异常名>是异常类的类名6・5.下列关于用户创建自己的异常描述中,错误的是(D)A.创建自己的异常应先创建一个异常类B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句C.捕捉异常的方法是使用try-catch-finally语句格式D.使用异常处理不会使整个系统更加安全和稳定二判断题6・1 .异常是一种特殊的运行错误的对象。

(对)62异常处理可以使整个系统更加安全和稳定。

(对)6・3.异常处理是在编译时进行的。

(错)6-4.Java语言中异常类都是ng.Throwable的子类。

(对)6-5.Throwable类有两个子类:Enor类和Exception类。

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

(对)6・6.异常通常是指Error类和Exception类。

(错)6-7.Exception 类只有一个子类为RuntimeException o(错)68在异常处理屮,出现异常和抛出异常是一回事。

(错)6・9.运行时异常是在运行时系统检测并处理的。

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

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

(对)6・12・使用finally语句的程序代码为该程序提供一个统一的的出口。

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

(对)6・14.创建异常类时要给出该异常类的父类。

(对)6J5.如果异常类没有被捕获将会产生不正常的终止。

(对)三分析程序的输出结果6・1. Exer6_l.javapublic class Exer6_lpublic static void main(String args[])int x=10,y=0;int z=x/y;System.out.println(u z="+z);}}该程序运行后,输岀结果如图所示:D:\JAVA\XT>java Exer6_lException in thread"main^ng.ArithmeticException:/by zero At Exer6_l .main<Exer6_l .java:6>6・ 2.Exer6_2.javapublic class Exer6_2{public static void main(String args[]){int array 1[]={ 6,0,8};for(int i=0;i<array 1 .length;i++){try{int d=100/array[i];System.out.println( ^\t 正常:d= "+d);} catch(ArithmeticException e){System.out.println("\t 算术异常”);} catch(ArrayIndexOutOfBoundsException e){System.out.println("\t 下标越界异常”);}finally{System.out.println("\t 异常处理结束! \n H);运行该程序后,输出如图所示D:\JAVA\XT>java Exer6_2 正常:d二16 界常处理结束!算术异常!异常处理结束!正常:d=12异常处理结束!下标越界异常!异常处理结束!6-3 Exer6_3.javapublic class Exer6_3{public static void main(String args[]){ 〜int array 1[]={ 6,0,8}; for(int i=0;i<=array 1 .length;i++) {try{int d=100/arrayl[i]; System.out.println("\t 正常:d二"+d);1 catch(RuntimeException e) { ”System.out.println("\t 异常':"+e.toString());} finally{System.out.println(H\t 异常处理结束! \n n); }}运行该程序后,输岀结果如图所示:D:\JAVA\XT>java Exer6_3 正常:d=16 界常处理结朿!异常:ng.ArilhmeticException:/by zero 异常处理结束!正常:d=12异常处理结束!异常:ng.ArrayIndexOutOfBoundsExcepiton:3 异常处理结束!6-4 Exer6_4.javapublic class Exer6_4{public static void Test(){int a[]=new int[3];for(int i=O;i<=a.length;i++){try{a[i]=i+5;System.out.println("\t 正常:a["+i+n]=,'+a[i]); }catch(ArrayIndexOutOfBoundsException e){System.out.println(H\t 异常:+e.toString()H); throw e;public static void main(String args[]){try{Test();}finally{System.out.println("\t 异常处理结束! \n H)}}运行该程序后,输岀结果如图:D:\JAVA\XT>java Exer6_4正常:alO]=5正常:a[l]=6正常:a[2]=7异常:javaJang.AmiylndexOulOfBoudsExceplion: 3 异常处理结束!Exception in thread "main9 ng.AiTayIndexOutOfBoundsExcepiton:3 at Exer6_4.Test<Exer6_4.java: 1()> at Exer6_4.main<Exer6_4java:24>6-5 Exer6_5.javaclass myException extends Exception{static int a=0myException(String s){super(s); a++;}String show(){return11自定义异常出现的次数:”+a;}}Public class Exer6_5{static void Test() throws myException{myException e;e=new myException(H自定义异常\n”); throw e;}Public static void main(String argsfl){for(int i=0;iv3;i++){try{Test();1catch(myException e){System.out.println(e.show());System.out.println(e.toString);运行该程序后,输岀结果如图所示:D:\JAVA\XT>java Exer6_5 自定义异常出现的次数:1 myException:自定义异常自定义异常出现的次数:2 myException: 口定义异常自定义异常出现的次数:3 my Exception:自定义界常5.简单回答题6-1检测异常事件必须使用什么语句?答:try语句6-2 catch()方法的作用是什么?该方法用户能否调用?答:用来处理try块中检测出的异常事件。

6-3 catch()方法中异常类型应与什么相符?答:与生成的异常事件类型相符。

6-4异常示被捕获到将会出现什么现象?答:try语句后边的惯常处理代码将不被执行,通常使用finally语句提供一个统一出口。

6-5在一个try语句的程序代码块中可以捕获多个异常吗?答:可以6-6使用throw语句抛出的是类型还是对象?答:抛出的是对象。

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

6-8 Finally语句块中的代码何时被执行?答:在异常事件处理的方法catch()执行后执行。

6-9语句throw的作用是什么?答:抛出所检测到的异常。

6-10 异常类Exception的父类是什么?答:是Throwable 类。

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

(1)数组卜标越界异常ArraylndexOutOfBoundsException类型。

例如,char ch[]=new char[5];ch[5]=W;〃产生该类型异常(2)对象转换异常ClassCastException类型。

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

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

例如,int arf]=null;System.out.println (ar.length);〃产生该类异常(1)关于数组下标越界异常ArraylndexOutOfBoundsException请参照本书本章例6.1的程序,请读者自行编写。

相关主题