java异常处理试题及答案Word格式文档下载.docx
《java异常处理试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java异常处理试题及答案Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。
C、finally{…}子句D、以上说法都丌对
5.下列程序的执行,说法错误的是(C)
publicclassMultiCatch
{
publicstaticvoidmain(Stringargs[])
try
inta=args.length;
intb=42/a;
intc[]={1};
c[42]=99;
System.out.println(“b=”+b);
}
catch(ArithmeticExceptione)
System.out.println(“除0异常:
”+e);
catch(ArrayIndexOutOfBoundsExceptione){
System.out.println(“数组超越边界异常:
A、程序将输出第15行的异常信息
B、程序第10行出错
C、程序将输出“b=42”
D、程序将输出第15和19行的异常信息
6.下列程序的执行,说法正确的是(D)
classExMulti
{
staticvoidprocedure()
catch(ArrayIndexOutOfBoundsExceptione)
System.out.println(“数组超越界限异常:
procedure();
A、程序只输出第12行的异常信息
B、程序只输出第26行的异常信息
C、程序将不输出异常信息
D、程序将输出第12行和第26行的异常信息
7.下面程序抛出了一个“异常”并捕捉它。
请在横线处填入适当内容完成程序。
classTrowsDemo
staticvoidprocedure()throwsIllegalAccessExcepton
System.out.println(“insideprocedure”);
throw__new_____IllegalAccessException(“demo”);
procedure();
catch(IllegalAccessExceptone)___________
System.out.println(“捕获:
8.对于catch子句的排列,下列哪种是正确的(B)
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个try程序段内
D、先有子类,其他如何排列都无关
9.在异常处理中,如释放资源、关闭文件、关闭数据库等由(C)来完成。
A、try子句B、catch子句
C、finally子句D、throw子句
10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C)
A、捕获异常B、抛出异常
C、声明异常D、嵌套异常
11.哪个关键字可以抛出异常?
(C)
A、transientB、finallyC、throwD、static
12.一个异常将终止(A)
A、整个程序B、叧终止抛出异常的方法
C、产生异常的try块D、×
上面的说法都丌对
二、填空题Java异常处理内部资料【机密】交流QQ250586262
1、catch子句都带一个参数,该参数是某个异常的类及其变量名,catch用该参数去与
__出现异常_____对象的类进行匹配。
2、java虚拟机能自动处理__运行异常_____异常。
3、变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参
数和_______
4、捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-_finally_____语句捕
获并处理。
5、java语言认为那些可预料和不可预料的出错称为____异常_____
6、按异常处理不同可以分为运行异常、捕获异常、声明异常和_抛出异常_____几种。
7、抛出异常的程序代码可以是_自定义的异常_____或者是JDK中的某个类,还可以是JVM.
8、抛出异常、生成异常对象都可以通过__throws_______语句实现。
9、捕获异常的统一出口通过___finally______语句实现。
10、java语言的类库中提供了一个___Throwable_______类,所有的异常都必须是它的实例或它
子类的实例。
11、Throwable类有两个子类:
RunException___类和Exception类。
12、对程序语言而言,一般有编译错误和__运行____错误两类。
13、下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。
请在横
线处填入适当的内容完成程序。
publicclassHelloWorld
inti=0;
Stringgreetings[]={
“Helloworld!
”,
“No,Imeanit!
“HELLOWORLD!
!
”
};
while(i<
4)
{
____try________
System.out.println(greeting[i]);
}
____catch__(ArrayIndexOutOfBoundsExceptione)
System.out.println(“Re-settingIndexValue”);
i=-1;
finally
System.out.println(“Thisisalwaysprinted”);
i++;
三、判断题
1.(F)程序中抛出异常时(throw…),只能抛出自己定义的异常对象。
2.(T)一个异常处理中finally语句块只能有一个或者可以没有。
3.(T)异常类对象代表当前出现的一个具体异常。
4.(T)java语言中的所有异常类都是java.lang.Throwable的子类。
5.(F)如果异常发生时,没有捕获异常的代码,程序会正常执行。
四、编程题
1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。
[提示:
用
错误数据测试,即可得到异常类名,运行时主方法参数输入abc测试]
publicclassStringIndexOutOf
publicstaticvoidmain(Stringargs[])
System.out.println("
字符串索引越界异常"
);
Stringstr=args[0];
System.out.println(“第四个字符为”+str.charAt(3));
intaa=Integer.parseInt(args[0]);
System.out.println(“平方为”+aa*aa);
2.从命令行得到5个整数,放入一整型数组,然后打印输出,要求:
如果输入数据
丌为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参
数丌足5个的异常(数组越界),显示“请输入至少5个整数”。
3.写一个方法voidsanjiao(inta,intb,intc),判断三个参数是否能构成一个三角形,
如果丌能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”丌能构成三角
形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,
调用此方法,并捕获异常。
4.自定义类Sanj,其中有成员x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z
赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三
条边丌能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信
息。
在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),
显示三角形信息和面积,要求捕获异常。