Java异常处理练习题

一、选择
1.下列代码中的异常属于(多选) (A D)

  int a = 0;
  System.out.println(2/a);

A. 非检查型异常
B. 检查型异常
C. Error
D. Exception

2.类及其子类所表示的异常是用户程序无法处理的 (C)
A. NumberFormatException
B. Exception
C. Error
D. RuntimeException

3.数组下标越界,则发生异常,提示为 (D)
A. IOException
B. ArithmeticException
C. SQLException
D. ArrayIndexOutOfBoundsException

4.运行下列代码,当输入的num值为a时,系统会输出 (B)

 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  try {
   int num = input.nextInt();
   System.out.println("one");
  } catch(Exception e) {
   System.out.println("two");
  } finally {
   System.out.println("three");
  }
  System.out.println("end");
 }

A. one three end
B. two three end
C. one two three end
D. two end

5.运行下列代码,输出结果为 (B)

 public static void main(String[] args) {
  try {
   int a = 1-1;
   System.out.println("a = " + a);
   int b = 4 / a;
   int c[] = {1};
   c[10] = 99;
  } catch(ArithmeticException e) {
   System.out.println("除数不准许为0");
  } catch(ArrayIndexOutOfBoundsException e) {
   System.out.println("数组越界");
  }
 }

A. a = 0
B. a = 0
除数不允许为0
C. a = 1
数组越界
D. a = 0
除数不允许为0
数组越界

6.下列关于异常的描述,错误的是(多选) (B D)
A. printStackTrace()用来跟踪异常事件发生时执行堆栈的内容
B. catch块中可以出现同类型异常
C. 一个try块可以包含多个catch块
D. 捕获到异常后将输出所有catch语句块的内容

7.假设要输入的id值为a101,name值为Tom,程序的执行结果为 ©

 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  try {
   int id = input.nextInt();
   String name = input.next();
   System.out.println("id = " + id + "\n" + "name" + name);
  } catch(InputMismatchException ex) {
   System.out.println("输入数据不合规范");
   System.exit(1);
   ex.printStackTrace();
  } finally {
   System.out.println("输入结束");
  }
 }

A. id=a101
name=Tom
B. id=a101
name=Tom
输入结束
C.【输入数据不合规范。Try again】
D.【输入数据不合规范。Try again】
输入结束
java.util.InputMismatchException…

8.下列代码的运行结果为 (D)

 public static int test(int b) {
  try {
   b += 10;
   return b;
  } catch(Exception e) {
   return 1;
  } finally {
   b += 10;
   return b;
  }
 }
 public static void main(String[] args) {
  int num = 10;
  System.out.println(test(num));
 }

A. 1
B. 10
C. 20
D. 30

9.在下列代码划线处不可以填入选项中的哪一个异常类型 ©

 public static int test(int a, int b) throws {
  if(b == 0){
   throw new ArithmeticException("算术异常");
  }else {
   return (a/b);
  }
 }

A. Throwable
B. Exception
C. InputMismatchException
D. ArithmeticException

10.假设有自定义异常类MyException,那么抛出该异常的语句正确的是 (B D)
A. throw new Exception()
B. throw new MyException()
C. throw MyException
D. throws Exception

你可能感兴趣的:(Java异常处理练习题)