第十七单元 异常

不问归期 提交于 2020-02-01 09:31:18

一、填空题(30道)

1.Java程序运行过程中所发生的异常事件可分为两类,分别是(错误)和( 异常 )。

2.在处理异常时,可将异常看成两类,分别是( 运行时异常)和( 非运行时异常 )。

3.在java的异常体系中,最大父类是( throwable  )。

4.将有可能产生错误的代码放在监视代码块( try... )中。

5.异常处理中有些代码一定要执行,可以选择放在( finally... )块中。

6.程序发生异常后进入到异常处理块( catch..  )中。

7.java.io.IOException属于( IO  )异常。

8.ArithmeticException属于( 算术  )异常。

9.ArrayIndexOutOfBoundsException属于(  越界  )异常,含义是( 数组下标越界异常 )。NullPointerException属于( 空指针)异常,含义是( 指针没有指向任何对象 )。

10.FileNotFoundException属于( 文档 )异常,含义是(要访问的文件不存在 )。

11.ClassCastException属于( 类型转换  )异常,含义是( 两种类型不能直接转换)。

12.异常在处理过程中用(  throws )关键字抛出异常对象。

13.异常处理语法中只有( try )块是必须的,( catch )块和(finally)块是可选的,但必须出现其中之一,也可同时出现。

14.如果在try块中出现了return语句,那么它与finally块中的语句的执行顺序是: finally块中的语句( )执行。

15.( try  )块中发生异常之后直接进入(  catch )块,执行完( catch  )块后也不会再返回到( try )块。因此,( try )块中发生异常之后的语句都不会再执行。      

16.异常处理程序中最多只能有一个( try )块。

17.Java程序必须显式处理( 编译异常   ),否则无法通过编译。

18对于运行时异常,java编译器(    )进行异常捕获处理或者抛出声明。

19.  Java程序运行过程中所发生的异常事件可分为两类,分别是(错误)和 (异常).

20. 将有可能产生错误的代码放在监视代码块(try)中。(填写  try或catch)

21. NullPointerException属于运行时异常,含义是()指针异常(填写 空或者非空) 空

22 JAVA的异常处理模型中,无论是否发生异常,(finally)块中的代码都会执行

23.异常在处理过程中用哪个关键字抛出异常对象 (throws)

24. 在java异常处理机制中,try语法块的作用是( 将有可能产生错误的代码放在try语法块中 )

 

二、代码阅读器(5道)

1.阅读以下代码,并写出运行结果

public static void main(String[] args) {      

int a=8,b=0,c=0;      

try{ c=a/b;     

     }catch(Exception e){       

    System.out.println(“分母不能为0”);      

   }     

}

运行结果为:(   分母不能为0

     )

 

 

2. 指出以下代码有什么错误

 

         public void test(){

         try{ int [] arr = new int[-3]; }

         catch(Exception e){

         throws new Exception();

         } }

 

错误:(   负数组长度异常                  )

 

3. 指出以下代码有什么错误

public void test() {

int age = 0; age = -100;

if (age < 0) {

Exception e = new Exception();

throws e; }

System.out.println(age); }

 

错误:( throws声明异常用在方法首部,而不是方法体中,方法中使用throw 并且需要与throws 连用  或者直接try  catch 处理掉      )

4. 指出以下代码有什么错误

public void test(){

try{

 int [] arr = new int[-3];

} throws(Exception e){

  System.out.println(e.getMessage());

 } }

 

错误:(try 不能单独使用需要和 catch  或finally 连用 throws  用在方法的首部  )

 

      5.阅读以下代码,并写出运行结果

 

int j=100;

for (int i = 0; i <100; i++) {

try {

j=i/(i%2); }

catch (Exception e) {

System.out.println(i);

continue; } }

 

运行结果为:( 0到99的偶数       )

三 判断题

1.catch的逻辑块中代码是对异常的处理。

2.java.lang.ClassNotFoundException这个异常的解释是”空指针异常”。  ×

3.异常中catch块是用来处理异常的  √

4.运行时异常编写代码时必须放在try块中  ×

5.java.lang.ArithmeticException这个异常的解释"数学运算异常" √

6.如果编码中够认真,程序运行时的异常是可以完全避免的。 ×

7.'错误一般程序忽视,在程序运行过程中错误的重要程度比不上异常。 ×

8.throw是语句抛出一个异常,throws是方法可能抛出异常的声明。 √

9.Java中的所有异常都是由Throwable类的子类生成的对象  √

四 单选题

1.关于捕捉异常是用的try catch语句,下面写法正确的是(C):

   A A.try{}catch(e){}

B try{}catch(Exception ){}

C try{}catch(Exception e){}

D try{}catch{}

2.public static void main(String[] args) {      

   int a=8,b=0,c=0;      

  try{       

    c=a/b;     

     }catch(Exception e){       

    System.out.println(“分母不能为0”);      

   }     

}上述代码的输出结果为:C

A 0

B 1

C 分母不能为0

D 8

  1. 下列是数学计算异常的是:D

A FileNotFoundException

B ArrayOutOfBoundsException

C NullPointerException

D ArithmeticException

五 多选题

  1. Java程序运行过程中所发生的异常事件分为两类,分别是:CD

A debug

B 断点

C 错误

D 异常

  1. 下面实例化正确的是( AC )

A User u = new User();

B User  new user();

C Person o = new Person();

D User u = User();

、技能题目

1.(30分钟)编写测试类,监视被0除的异常,使用ArithmeticException异常捕获异常。

完成要求:代码规范,有注释,能正确运行出结果

思路要求:在测试类的try块中,从键盘输入分别输入两个数a和b,做除法运算,使用catch块捕获异常ArithmeticException异常,输出打印”被零除”。

package com.xiongluoluo;

import org.junit.jupiter.api.Test;

import java.util.Scanner;

/**
 * Created by dell on 2020/1/31.
 */
public class MyTest {
    /*1.(30分钟)编写测试类,监视被0除的异常,使用ArithmeticException异常捕获异常。
    完成要求:代码规范,有注释,能正确运行出结果
    思路要求:在测试类的try块中,从键盘输入分别输入两个数a和b,做除法运算,
    使用catch块捕获异常ArithmeticException异常,输出打印”被零除”。*/
    @Test
    public void test(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入a的值:");
        int a = sc.nextInt();
        System.out.println("请输入b的值:");
        int b = sc.nextInt();
        try{
            int result = a / b;
            String s = a + "/" + b + "=" + result;
            System.out.println(s);
        }catch (ArithmeticException e){
            System.out.println("被零除");
        }
    }

}

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!