第12章 异常处理 习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第12章异常处理
一.单项选择题
1.程序中的错误可以分为以下三类,除了【】。
A) 逻辑错误B) 运行错误C) 自定义错误D) 语法错误2.程序运行期间发生的错误称为【】。
A) 版本B) 断点C) 异常D) 属性
3.在C#程序中,可以使用try…catch机制来处理程序出现的【】错误。
A) 语法B) 拼写C) 运行D) 逻辑
4.以下关于C#的异常处理的叙述中,正确的是【】。
A) 一个try块后面只能跟随一个catch块
B) 在try…catch…finally块中,当发生异常时只执行相应catch块中的语句,不会执行finally块
C) throw语句中必须指出抛出的异常
D) try块后面必须跟catch块或finally块组合使用,不能单独使用
5.以下关于try…catch…finall语句的叙述中,不正确的是【】。
A) catch块可以有多个B) finally块最多只能有一个
C) catch块和finally块都是可选的D) 可以只有try块,没有catch块和finally块
6.一般情况下,异常类存放在【】中。
A) System.Exception命名空间B) System.Diagnostics命名空间
C) System命名空间D) Exception命名空间
7.分析下列程序代码:
int num;
try
{ num= Convert.ToInt32(Console.ReadLine()); }
Catch
{ //捕获异常}
当输入"abc"时,会抛出【】异常。
A) FormatException B) IndexOutOfRangException
C) OverflowException D) TypeLoadException
8.用户定义的异常应该从【】类中继承。
A) ArgumentException B) IOException
C) SystemException D) Exception
9..NET Framework中,处理异常是很有用的功能。一个try代码块可以有多个catch块与之对应。在多个catch块中,下面【】异常应该最后捕获。
A) Exception B) StackOverflowException
C) SystemException D) FormatException
10.下列关于try…catch…finally语句的说明中,不正确的是【】。
A) catch块可以有多个B) finally块是可选的
C) catch块是可选的D) 可以只有try块
11.为了能够在程序中捕获所有异常,在catch语句的括号中使用的类名为【】。
A) Exception B) DivideByZeroException
C) FormatException D) 以上三个均可
12.下列说法正确的是【】。
A) 在C#中,编译时对数组下标越界将作检查
B) 在C#中,程序运行时,数组下标越界也不会产生异常
C) 在C#中,程序运行时,数组下标越界是否产生异常由用户确定
D) 在C#中,程序运行时,数组下标越界一定会产生异常
13.关于catch代码块说法正确的是【】。
A) 包含有可能会引发异常的语句块B) 声明有可能会引发异常的类型
C) 一般不与try块配合使用,单独使用D) 异常处理程序位于catch代码块中14.Throw语句抛出的异常类型必须是【】。
A) System.Show类型B) System类型
C) 任意类型D) System.Exception或从System.Exception派生的类型
二.填空题
1.与try块相关的【finally】块将一定被执行。
2.异常对象均是从【Exception】类派生而来的。
3.【try 】块封装了可能引发异常的代码。
4.如果方法Convert.ToInt32的参数不是一个有效的整数值,可以抛出一个【FormatException】异常。
5.数组下标越界时产生的异常是【IndexOutOfRangException】类型的异常。6.Exception类有两个重要的属性,其中【Message属性】属性包含对异常原因的描述信息。
7.在catch语句中列举异常类型时,DivideByZeroException异常应列在Exception异常的【前面】。(填前面或后面)
8.常用的异常处理关键字包括【try】、【catch 】、【finally 】、
【throw 】。
三.填空题和改错题
1.对于下列代码段,执行后输出结果是【】。
int n,m;
int[] a=new int[5];
n=10; m=10;
try
{ for(int i=0; i<=a.Length; i++) a[i]=i;
n=1/(n-m);
}
catch(DivideByZeroException e1)
{ Console.WriteLine("产生零除异常!"); }
catch(IndexOutOfRangeException e2)
{ Console.WriteLine("产生数组访问越界异常!"); }
catch { Console.WriteLine("产生异常!"); }