AnjoyoJava06课后习题-带答案

更新时间:2023-11-18 06:58:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

AnjoyoJava06课后习题

一、选择题:

1. 下面关于异常的说法正确的一项是( )。

A、异常就是在程序的运行过程中所发生的不正常的事件,但它不会中断正在运行的程序。(没有UI的程序 是一定会挂掉 存在JF SW 窗口不一定全部死掉) B、Error类和Exception类都是Throwable类的子类。

C、Exception处理的是Java运行环境中的内部错误或者硬件问题,比如,内存资源不足、系统崩溃等。----Error

D、Error处理的是因为程序设计的瑕疵而引起的问题或者外在的输入等引起的一般性问题,例如:在开平方的方法中输入了一个负数,对一个为空的对象进行操作以及网络不稳定引起的读取网络问题等。------------Exception

2. 引起RuntimeException异常的原因不包括下面哪一项( )。

A、错误的类型转换 B、试图从文件结尾处读取信息 --IO C、试图访问一个空对象 D、数组越界访问 3. 引起IOException异常的原因不包括下面哪一项( )。

A、试图从文件结尾处读取信息

B、试图打开一个不存在或者格式错误的URL。 C、数学计算错误 ----RuntimeException

D、用Class.forName()来初始化一个类的时候,字符串参数对应的类不存在。-- 4. 下面哪一项不是RuntimeException异常中的一类( )。

A、ClassNotFoundException:无法找到需要的类文件异常------Other B、NumberFormatException:数字转化格式异常---RT C、IllgalArgumentException:非法参数值异常---RT

D、IllegalStateException:对象状态异常,如对未初始化的对象调用方法---RT 5. IOException异常不包括下面哪一项( )。

A、EOFException:读写文件尾异常 B、InterruptedException:线程中断 C、SocketException:Socket通信异常

D、MalformedURLException:URL格式错误异常

6. 下列关于try-catch-finally处理异常描述有误的一项是( )。

A、异常处理可以定义在方法体、自由块或构造方法中。

B、catch() 从句中引入一个可能出现的异常,一个try块只可以和一个catch()块配合以处理多个异常。----多个

C、try-catch-finally语句可以嵌套使用。 D、可以将可能出现异常的代码和其它的一些不会引起异常的代码都放在try代码块中。 7. 下面关于catch块对异常采取的措施说法有误的一项是( )。

A、处理异常,对异常采用合适的处理,然后绕过异常发生的地方或者是继续执行;或者用别的数据进行计算。

B、如果捕获到异常,那catch块也可以不用做一些有用的事情来处理这个异常。

C、重新抛出新异常,把当前运行环境下能做的事情尽量做完,然后把新的异常抛给上层来调用和处理。 D、在合适的层处理异常,如果当前的层不清楚如何处理异常,就不要在当前层使用catch

语句来捕获异常,直接使用throws声明抛出异常,由上一层处理该异常。

二、填空题:

1. 异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,出现在编译阶段

的异常,称之为___编译时异常_____,出现在运行阶段的异常,称之为__运行时异常(runtime)______。

2. 根据异常的来源,可以把异常分为两种类型:_系统定义的运行时异常_______和_用户自定义异常_______。

3. 所有的Java异常类都是系统类库中的_Exception_______类的子类。

4. 抛出异常分为__throws______、__thorow______以及_系统自动抛出异常_______三种情况。

5. Java语言为我们提供了_try…catch_______语句和_try…catch…finally_______语句捕捉并处理异常。

6. 一个try块后面可能会跟着若干个___catch_____块,每个__catch______块都有一个异常类名作为参数。

7. 如果try语句块产生的异常对象被第一个catch块所接收,则程序的流程将_try语句块

在遇到问题的地方停止 专向第一个catch块_______,catch语句块执行完毕后就_退出当前方法_______,try块中尚未执行的语句和其他的catch块将被_忽略_______;如果try语句块产生的异常对象与第一个catch块不匹配,系统将自动转到 下一个catch块 ________进行匹配。

8. 由于异常对象与catch块的匹配是按照catch块的__先后______顺序进行的,所以在处

理多异常时应注意认真设计各catch块的排列顺序。---从小到大去catch异常

9. throws语句抛出的异常实际上是由throws语句修饰的方法内部的__throw______语句抛出的,使用throws的主要目的是为了_通知所有预调用 此方法的方法_______。 10. Error处理的是Java运行环境中的_内部错误_______或者_硬件问题_______。

三、简答题:

1. 请写出最少两个catch块对异常采取的适当措施。

a. 处理异常,对异常采用合适的处理,然后绕过异常发生的地方或者是继续执行 或

者用别的数据进行计算 b. 重新抛出新异常,把当前运行环境下能做的事情尽量做完,然后把新的异常抛给

上层来调用和处理 c. 在合适的层处理异常,如果当前的层不清楚如何处理异常,就不要在当前层使用

catch来捕获异常,直接使用throws声明抛出异常,由上层来处理该异常

2. 请简要描述通过try-catch-finally来处理异常的工作原理。

要监控的程序语句放到try中,catch中存放合理的方式去捕获处理异常的代码 finally主要是释放资源(可以没有)

通过try-catch语句,可以将可能出现的异常通过catch()语句捕获 并在相应的地方处理 另外可以加入finally子句 在finally中的代码无论是否发生异常都会被无条件执行

异常处理可以定义在方法体、自由块、或者构造方法 并且trycatchfinally语句可以嵌套使用

将可能出现异常的代码都放到try中,没有问题的也可以一并放入

Catch()从句中引入一个可能出现的异常,一个try块可以和多个catch块配合处理

多个异常

Try里如果发生异常 将会停止 直接跳往相应的catch块中

Finally 如果没有发生异常 finally也会执行—一般放一些释放资源的代码

3. 请写出不少于四个常见的异常。

RuntimeException 运行时异常 arrayindexoutofbundsException classcastException

numberformatexception arithmeticException nullpointexception

illgalaegunentexception 非法参数值异常 interruptedexception线程中断 。。。。

IOEXception

Fillnotfoundexception

EODException 读写文件尾异常

MalformedURLExcepton URL格式错误异常 SocketException 其他异常

Classnotfindexception

四、编程题:

1. 用try…catch…finally写一个捕捉数组越界的异常例子。 2. 用try…catch写一个试图访问一个空对象的异常例子。

3. 利用Exception的printStackTrace()方法写一个追踪异常源头的例子。 4. 编写一个系统自动抛出的、系统自行处理的数组大小为负数的程序。 5. 编写一个由throw抛出的、系统自行处理的数组下标越界的程序。 6. 编写一个由throw抛出的、由try-catch捕捉处理的分母为0以及数组下标越界的程序。

本文来源:https://www.bwwdw.com/article/pctv.html

Top