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 )。