当前位置:文档之家› JAVA基础第6章异常处理机制_练习题

JAVA基础第6章异常处理机制_练习题

第6章异常处理机制
一、选择题
1.下列关于异常的说法正确的是(B)。

A.异常是编译时的错误
B.异常是运行时出现的错误
C.异常就是程序错误,程序错误就是异常
D.以上都不对
2.下列哪个类是异常类的父类(根类)(A)。

A.Exception
B.ArithmeticException
C.NullPointerException
D.ArrayIndexOutofBoundException
3.有关下列异常处理机制叙述正确的是(C)。

try{
可能产生异常的语句块;
}catch(exceptiontype1 e){
处理异常e的语句块;
}catch(exceptiontype2 e){
处理异常e的语句块;
}
……
finally{
最终处理语句块;
}
A.try子句可能有多个,catch子句可能有多个,finally子句必须有。

B.多个catch参数中的异常类可以有父子关系,但父类异常的catch子句应该在子类异常的catch子句前面。

C.如果try子句没有抛出任何异常,则跳过catch子句,转移到finally子句继续执行。

D.当try子句监视的语句块抛出异常时,运行时系统会根据catch子句的顺序,从第一个开始,逐个查找能够捕获该异常的catch子句并执行catch子句内的语句块以完成对异常的处理,然后继续执行后面的catch子句,最后转移到finally子句,执行该子句中的语句块。

4.有关throw和throws的说法中不正确的是(C)。

A.throw的作用是抛出异常,后面加的是异常类的对象。

B.throws的作用是向外抛出异常即声明要产生的若干异常,后面加的是异常类的类名。

C.throws只能声明要产生的自定义异常,也就是后面只能加自定义异常类。

D.以上都不对。

5.下列程序运行结果是(C)。

public class E {
public static void main(String argv[]){
E m = new E();
System.out.println(m.amethod());
}
public int amethod(){
int i, j=0;
try {
i=3/j;
j++;
} catch (ArithmeticException e) {
return j;
} catch (Exception e){
return 3;
}
return 2;
}
}
A.1 B.2 C.0 D.3
6.下列程序运行的结果是(A)。

public class E {
public static void main(String argv[]){
E m = new E();
System.out.println(m.amethod());
}
public int amethod(){
try {
int i, j=0;
i=3/j;
} catch (ArithmeticException e) {
System.out.println("0不能做除数");
return -1;
} catch(Exception e){
return -1;
} finally{
System.out.println("Doing finally");
}
return 0;
}
}
A.0不能做除数
Doing finally
-1
B.0不能做除数
-1
Doing finally
C.0不能做除数Doing finally
D.0不能做除数-1
二.编程题
1.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法:
public void speak(int m) throws MyException,要求参数m的值大于200时,方法输出信息“参数的值大于200。

”,否则抛出一个MyException对象。

最后编写主类,在主类的main 方法中用Student创建一个对象s,该对象调用speak方法。

1.class MyException extends Exception {
MyException(){
super("This is MyException class");
}
}
class Student {
public void speak(int m) throws MyException {
if (m>200) {
System.out.println("参数的值大于200。

");
} else {
throw new MyException();
}
}
}
class E {
public static void main(String[] args) {
Student s = new Student();
try {
s.speak(100);
}catch(MyException e) {
e.printStackTrace();
}
}
}。

相关主题