JAVA基础 第6章异常处理机制 - 练习题 - 200910 联系客服

发布时间 : 星期六 文章JAVA基础 第6章异常处理机制 - 练习题 - 200910更新完毕开始阅读660260b6c850ad02df80419a

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(){

第1页 共3页

Java基础 第6章练习 大外软件学院

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(\不能做除数\ return -1; } catch(Exception e){

return -1; } finally{

System.out.println(\ } return 0; } }

A.0不能做除数

Doing finally -1

B.0不能做除数

-1

Doing finally

C.0不能做除数Doing finally D.0不能做除数 -1

二.编程题

1.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法:

第2页 共3页

Java基础 第6章练习 大外软件学院

public void speak(int m) throws MyException,要求参数m的值大于200时,方法输出信息 “参数的值大于200。”,否则抛出一个MyException对象。最后编写主类,在主类的main 方法中用Student创建一个对象s,该对象调用speak方法。 1.class MyException extends Exception { MyException(){ super(\ } }

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(); } } }

第3页 共3页