java异常(习题)
Key Point * 异常的概念和分类 * 异常的产生和传递 * 异常的处理 * 自定义异常
练习 1. 填空
Java 中所有的错误都继承自______类;在该类的子类中,
_______类表示严重的底层错误,对于这类错误一般处理的方式是___________; _______类表示例外、异常。
2. 查api,填空
异常类java.rmi.AlreadyBoundException,从分类上说,该类属于__________(已检查| 未检查)异常,从处理方式上说,对这种异常___________________;
异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于_________(已检 查|未检查)异常,从处理方式上说,对这种异常__________________。
3. (异常的产生)把下面代码补充完整 package exception; public class TestThrow { } public static void throwException(int n) { } if (n == 0) { } // 抛出一个NullPointerException // 抛出一个ClassCastException // 并设定详细信息为“类型转换出错” } else { public static void main(String args[]) { } throwException(10); 4. (try-catch-finally)有如下代码: import java.io.*; import java.sql.*; class TestException { public static void main(String args[]) { System.out.println(\ int n; // 读入n ma(n); System.out.println(\ } public static void ma(int n) { try { System.out.println(\ mb(n); System.out.println(\ } catch (EOFException e) { System.out.println(\ } catch (IOException e) { System.out.println(\ } catch (SQLException e) { System.out.println(\ } catch (Exception e) { System.out.println(\ } finally { System.out.println(\ } } public static void mb(int n) throws Exception { System.out.println(\ if (n == 1) throw new EOFException(); if (n == 2) throw new FileNotFoundException(); if (n == 3) throw new SQLException(); if (n == 4) throw new NullPointerException(); System.out.println(\ } } 问:当读入的n 分别为1,2,3,4,5 时,输出的结果分别是什么?
5. (自定义异常)创建两个自定义异常类MyException1 和MyException2。 要求:
1) MyException1 为已检查异常,MyException2 为未检查异常
2) 这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生 异常的详细信息。
6. (自定义异常)在上一题的基础上,把下面代码补充完整。 public class TestMyException { } public static void m(int n) { // 声明抛出MyException1 } if (n == 1) { } // 抛出MyException1 // 并设定其详细信息为“n == 1” // 抛出MyException2 // 并设定其详细信息为“n == 2” public static void main(String args[]) { } int n; // 读入n try { m(n); } catch (MyException1 ex1) { } // 输出ex1 详细的方法调用栈信息 // 输出ex2 的详细信息 // 并把ex2 重新抛出 } catch (MyException2 ex2) { } else { 7. (try-catch)代码改错。 class MyException { } class TestException { public static int ma() { try { m(); return 100; public static void main(String args[]) { } ma(); } } } catch (Exception e) { } System.out.println(\); System.out.println(\); } catch (ArithmeticException e) { public static void m() { } throw new MyException(); 8. (方法覆盖)有如下代码 class Super { } interface IA { } class MySub extends Super implements IA { } public void mb()// 2_________ { } public void ma()// 1_________ { } void mb(); public void ma() throws IOException { } 问:
在//1 处,填入以下________代码可以编译通过,在//2 处,填入_________代码可以编译 通过。
A. throws java.io.IOException
B. throws java.io.FileNotFoundException, java.io.EOFException C. throws java.sql.SQLException D. 不能抛出任何异常。
9. *(异常处理)有如下代码 import java.io.*; import java.sql.*;

