java考试题库第六章
更新时间:2024-04-03 12:16:01 阅读量: 综合文库 文档下载
第六章 异常和异常处理
一 选择题
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 public class Exer6_1 {
public static void main(String args[] )
{ int x=10,y=0; int z=x/y; System.out.println(“z=“+z); } }
该程序运行后,输出结果如图所示: D:\\JAVA\\XT>java Exer6_1 Exception in thread”main”java.lang.ArithmeticException:/by zero At Exer6_1.main
public static void main(String args[]) {
int array1[]={6,0,8};
for(int i=0;i
try {
int d=100/array[i];
System.out.println(“\\t 正常:d=“+d); }
catch(ArithmeticException e) {
System.out.println(\算术异常\; }
catch(ArrayIndexOutOfBoundsException e) {
System.out.println(\下标越界异常\}
finally {
System.out.println(\异常处理结束!\\n\;
}
} } }
运行该程序后,输出如图所示
D:\\JAVA\\XT>java Exer6_2 正常:d=16 异常处理结束! 算术异常! 异常处理结束! 正常:d=12 异常处理结束! 下标越界异常! 异常处理结束! 6-3 Exer6_3.java
public class Exer6_3 {
public static void main(String args[]) {
int array1[]={6,0,8};
for(int i=0;i<=array1.length;i++) {
try {
int d=100/array1[i];
System.out.println(\正常:d=\}
catch(RuntimeException e) {
System.out.println(\异常:\}
finally {
System.out.println(\异常处理结束!\\n\} } } }
运行该程序后,输出结果如图所示:
D:\\JAVA\\XT>java Exer6_3 正常:d=16 异常处理结束!
异常:java.lang.ArithmeticException:/by zero 异常处理结束! 正常:d=12 异常处理结束! 异常:java.lang.ArrayIndexOutOfBoundsExcepiton:3 异常处理结束! 6-4 Exer6_4.java public class Exer6_4 {
public static void Test() {
int a[]=new int[3];
for(int i=0;i<=a.length;i++) {
try {
a[i]=i+5;
System.out.println(\正常:a[\}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println(\异常:+e.toString()\throw e; } } }
public static void main(String args[]) {
try {
Test(); }
finally {
System.out.println(\异常处理结束!\\n\} } }
运行该程序后,输出结果如图:
D:\\JAVA\\XT>java Exer6_4 正常:a[0]=5 正常:a[1]=6 正常:a[2]=7 异常:java.lang.ArrayIndexOutOfBoudsException: 3 异常处理结束! Exception in thread “main” java.lang.ArrayIndexOutOfBoundsExcepiton:3 at Exer6_4.Test
class myException extends Exception {
static int a=0
myException(String s) {
super(s); a++; }
String show() {
return\自定义异常出现的次数:\} }
Public class Exer6_5 {
static void Test() throws myException {
myException e;
e=new myException(\自定义异常\\n\throw e; }
Public static void main(String args[]) {
for(int i=0;i<3;i++) {
try {
Test(); }
catch(myException e) {
System.out.println(e.show()); System.out.println(e.toString); } } }
}
运行该程序后,输出结果如图所示:
D:\\JAVA\\XT>java Exer6_5 自定义异常出现的次数:1 myException:自定义异常 自定义异常出现的次数:2 myException:自定义异常 自定义异常出现的次数:3 myException:自定义异常 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) 数组下标越界异常ArrayIndexOutOfBoundsException类型。例如,
char ch[]=new char[5];
ch[5]='m';//产生该类型异常
(2) 对象转换异常ClassCastException类型。
例如,将对象a1转换为对象a2时,如果a1和a2不是同类,并且a1也不是a2 的子类对象时,则产生该类型异常。
(3) 引用空对象的变量和方法时产生NullPointerException异常类型。例如,
int ar[]=null;
System.out.println(ar.length);//产生该类异常
(1) 关于数组下标越界异常ArrayIndexOutOfBoundsException请参照本书本章例6.1的程序,请读
者自行编写。
(2) 下面关于对象转换的例子。程序内容如下:
public class pro6_1
{ public static void main(String args[])
{ try{ M(); } catch(ClassCastException e) { System.out.println(\对象转换异常\ } } static void M()throws ClassCastException { Object obj=new Object(); int arr[]=(int[])(obj); } }
(3) 编写处理异常程序如下: public class pro6_2 {
public static void main(String args[]) { try{ int ar[]=null; System.out.println(ar.length); } catch(NullPointerException e) { System.out.println(\ } } }
运行该程序后,输出显示结果如下:
Exception:java.Lang. NullPointerException.
6-2 定义一个circle类,其中有求面积的方法,当圆的半径小于0时,抛出一个自定义的异常。编程实现之:
程序内容如下;
class Circle extends Exception {
double r; Circle() { }
Circle(double i) {r=i;}
public double getr() {return r;}
public double Area()
{ return 3.1415*r*r; }
}
public class pro6_3 {
public static void main(String args[]) {
Circle c=new Circle(-3.0); try {
if(c.getr()<0) {
Circle ee=new Circle(); throw ee; }
System.out.println(c.Area()); }
catch(Circle e) {
System.out.println(\自定义异常:} } }
运行该程序后,输出显示如下结果: 自定义异常:Circle 如果将语句
Circle c=new Circle(-3.0); 必为
Circle c=new Circle(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-3 catch()方法是用来捕捉和处理异常的,可使用多个该方法,其异常类型的先后顺序是无关的。 6-4 用户在创建自己的异常时,通常在通过throw语句抛出异常。 6-5finally语句的程序段无论发生异常事件与否,它都是被执行的。 3.分析程序的输出结果
6-1程序内容如下: public class test6_1 {
public static void main(String args[]) {
int arr[]={1,3,5,7,9}; int i=0; while(i<6) {
try {
System.out.println(arr[i++]+1); }
catch(ArrayIndexOutOfBoundsException e) {
System.out.println(\下标越界\}
finally {
System.out.println(\} } }
}
6-2程序内容如下:
class myException extends Exception {
myExcepiton(String s) {
super(s); } }
public class test6_2 {
public static void main(String args[]) {
try {
throw new myException(\我自定义的异常\; }
catch(myException e) {
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>都被执行吗?
正在阅读:
java考试题库第六章04-03
德国双元制职业教育对中国的启示04-18
最好最全的家庭教育论文06-15
美容院连锁店加盟合同范本04-05
5-3.2能量转化的量度(第1课时)05-13
A Case-Based Reasoning Approach to Formulating University Timetables Using Genetic Algorith05-21
火灾报警系统系统安装及检测要求05-28
秋天到了作文600字06-28
EICAD路线设计流程03-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 考试题库
- java
- 1-8单元课内阅读练习(0)
- 2018西南网院《实验心理学》答案
- 竞赛题选取6.3
- 辐射3配置文件 FALLOUTINI 详尽解析!
- 上仪AI-MI型电动门检修规程 - 图文
- 2011年湖南省对口高考英语专题复习题
- 2012学年第一学期初二物理第一次阶段测试卷
- 招生就业处管理制度
- 2015集成电路课程设计
- 无线数传模块
- 加强旧轨料管理 构建防治“小金库”长效机制
- 轻型商用车传动轴及万向节设计设计说明书
- 上海环球展览有限公司会展管理信息系统应用方案
- 八年级英语期中试卷
- 2016年甘肃省公务员考试科目时间
- 2010苏州大学计算机单招班教学调研性测试试卷
- 学校全面工作总结 11-12下doc
- 六年级上期末考试(语文卷)(定稿) - 图文
- 2018大班下学期个人工作计划-精选范文
- 读书的苦与乐