AnjoyoJava06章节考试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章考试题
一、选择题:(每题3分,共20题)
1.关于异常的含义,下列描述中最正确的一项是()。
A、程序编译或运行时发生的异常事件
B、程序语法错误
C、程序自定义的异常事件
D、程序编译错误
2.自定义异常时,可以通过对下列哪一项进行继承(A )。
A、Exception类及其子类
B、Applet类
C、AssertionError类
D、Error类
3.对应try和catch子句的排列方式,下列说法正确的一项是
(B )。
A、父类和子类不能同时出现在try语句块中
B、子类异常在前,父类异常在后
C、父类异常在前,子类异常在后
D、只能有子类异常
4.运行下面程序时,会产生的异常是( D )。
public class Test06_01 {
public static void main(String[] args) {
int x = 0;
int y = 5/x;
int[] z = {1,2,3,4};
int p = z[4];
}
}
A、ArrayIndexOutOfBoundsException
B、IOException
C、NumberFormatException
D、ArithmeticException
5.运行下面程序时,会产生的异常是(D)。
public class Test06_02 {
public static void main(String[] args) {
int[] z = {1,2,3,4};
int p = z[4];
int x = 0;
int y = 5/x;
}
}
A、NumberFormatException
B、ArithmeticException
C、IOException
D、
ArrayIndexOutOfBoundsException
6.下列程序执行的结果是()。
public class Test06_03 {
public static void main(String[] args) {
try{
return;
}
finally{
System.out.println("Finally");
}
}
}
A、编译通过,但运行时出现异常
B、因为没有catch子句,因此不能通过编译
C、程序正常运行,并输出Finally
D、程序正常运行,但不输出任何结果
7.下列代码中给出正确的在方法体内抛出异常的是()。
A、throw new Exception(" ");
B、throws IOException;
C、new throw Exception(" ");
D、throws IOException();
8.下列描述了Java语言通过面相对象的方法进行异常处理的好处,
请选出不在这些好处范围之内的一项()。
A、把错误处理代码从常规代码中分离出来
B、可以利用异常处理机制代替传统的控制流程
C、把各种不同的异常事件进行分类,体现了良好的继承性
D、这种机制对具有动态运行特性的复杂程序提供了强有力的支
持
9.下面关于try块说法错误的一项是()。
A、如果try块里的代码过于庞大,业务过于复杂,造成try块中
出现异常的可能性增大,从而导致分析异常原因会很麻烦。
B、当try块过于庞大的时候,就难免在try块后紧跟着大量的catch
块才可以针对不同异常提供不同的处理逻辑。
C、同一个try块后紧跟着大量catch块则需要分析它们之间的逻
辑关系,但不会导致程序的复杂性增加。
D、可以把大块的try块分割成多个可能出现异常的程序段落,并
把它们放在单独的try块中,从而分别捕获并处理异常。
10.下列关于自定义异常类描述有误的一项是( D )。
A、定义异常类时通常需要提供两种构造方法:无参数的构造方
法和带一个字符串的构造器,这个字符串将作为该异常对象的详细说明(也就是异常对象getMessage方法的返回值)。
B、在选择抛出什么异常时,应该选择合适的异常类,从而可以
明确描述该异常情况。
C、通常情况下,程序很少会自行抛出系统异常,因为异常的类
名通常包含了该异常的有用信息。
D、用户自定义异常都应该继承Exception基类,如果希望自定义
Runtime异常,则也应该继承Exception基类,利用Exception的printStackTrace()方法可以追踪异常出现的执行堆栈情况,并可以以此找到异常的源头。
11.下面关于过度使用异常说法错误的一项是()。
A、把异常和普通错误混淆在一起,不再编写任何错误处理代码,
而是以简单的抛出异常来代替所有错误处理,这会导致过度使用异常。
B、使用异常处理代替流程控制,这会导致过度使用异常。
C、异常处理机制的初衷是将不可预期异常的处理代码和正常的
业务逻辑代码分离,可以使用异常处理来代替正常的业务逻辑判断。
D、应该只对外部的、不能确定和预知的运行错误才使用异常。
12.下面关于抛出异常说法错误的一项是()。
A、一个方法应该抛出它可能碰到的重要的“已检查异常”和Error,
而对于“未检查异常”,应该通过程序来避免这种情况的发生。
B、如果一个现成的异常可以使用,则我们可以方便的自己来抛
出异常,找到一个合适的异常类。
C、如果一个现成的异常可以使用,则我们可以方便的自己来抛
出异常,实例化这个异常类。
D、如果一个现成的异常可以使用,则我们可以方便的自己来抛
出异常,抛出这个异常类对象。
13.下面关于使用throw抛出异常说法不正确的一项是()。
A、当程序出现错误的时候,系统会自动抛出异常。
B、当程序出现错误的时候,Java允许程序自行抛出异常。
C、throw语句可以单独使用,不需要和throws或者是try-catch
结构结合使用。
D、throw语句抛出的不是异常类,而是异常实例,而且每次只能
抛出一个异常实例。
14.下面关于try-catch-finally处理异常说法错误的一项是(D )。
A、当try块内的任何代码抛出了由catch() 子句指定的异常,则
try代码段中的程序将会终止执行,并跳到相应的catch()代码块中来执行。
B、可以通过Exception的getMessage()方法来获得异常的详细信
息或者通过printStackTrace()方法来跟踪异常事件发生时执行堆栈的内容。
C、无论是否出现异常,程序最后都会执行finally代码块中的内
容。
D、在通过catch来捕获多个异常时,越“具体”的异常放在越前
面,也就是说,如果这些异常之间有继承关系,则应该将父类的异常放在前面,而将子类的异常放在后面来捕获。
15.下列说法错误的一项是()。
A、如果try块被执行一次,则try块后只有一个catch块会被执行,
绝不可能有多个catch块被执行。
B、在循环中使用了continue开始下一次循环,下一次循环又重新
运行了try块,这样才可能导致多个catch块被执行。
C、使用Exception声明抛出异常的思路是:当前方法不知道应该
何处处理这种类型的异常,该异常应该由上一级调用者处理。
D、当Java运行时决定调用某个catch块来处理该异常对象时,会
将该异常对象赋给catch块后的异常参数,程序就可以通过参数来获得该异常的相关信息。
16.下面哪一项属于IOException异常(A )。
A、InterruptedException:线程中断
B、ClassNotFoundException:无法找到需要的类文件异常
C、FileNotFoundException:指定文件未找到异常
D、UnsupportedOperationException:对象不支持的操作异常,如
调用方法名、方法参数写错等。
17.下面关于Java中的异常处理机制描述错误的一项是()。
A、Java程序的执行过程中如出现异常,会自动生成一个异常类
对象,该异常对象将被提交给Java运行时环境,这个过程称为抛出(throw)异常。
B、当Java运行时环境接收到异常对象时,会寻找能处理这一异
常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。
C、程序员通常只能处理异常(Exception),而对错误(Error)无能为
力。
D、如果Java运行时环境找不到可以捕获异常的方法,则运行时
环境将终止,但相应的Java程序不会退出。
18.RuntimeException异常不包括下面哪一项()。
A、NullPointerException:空指针异常
B、SocketException:Socket通信异常
C、NegativeArraySizeException:负数组长度异常
D、ClassCastException:造型异常
19.下面哪一项不属于RuntimeException异常()。
A、Exception:异常层次结构的根类
B、ArithmeticException:数学计算异常
C、FileNotFoundException:指定文件未找到异常
D、ArrayIndexOutOfBoundsException:数组越界异常
20.下面关于Error/Exception说法错误的一项是()。
A、Error类和Exception类都是Throwable类的子类。
B、Error类只有四个子类,分别是AWTError、LinkageError、
VirtualMachineError以及ThreadDeat。
C、Exception的子类大致分为有关I/O的IOException,有关运行
时的异常RuntimeException以及其它的异常。
D、IOException异常是由于程序编写过程中的不周全的代码引起
的,而RuntimeExcepiton是由于IO系统出现阻塞等原因引起的。
二、简答题:(每题8分,共5题)
1.请写出三个引起RuntimeException异常的原因。
2.请写出两个引起IOException异常的原因。
3.请写出throws抛出异常的思路和JVM对异常的处理方法。
4.请简要介绍Error和Exception的层次关系。
5.请写出不少于三个在处理异常时需要注意的事项。
6.
7.
8.友情提示:部分文档来自网络整理,供您参考!文档可复制、编
制,期待您的好评与关注!
9.。