Key Point:
- 异常的概念和分类
- 异常的产生和传递
- 异常的处理
- 自定义异常
问题:
1.填空
Java中所有的错误都继承自____类;
在该类的子类中,____类表示严重的底层错误,对于这类错误一般的处理方式是____;
____类表示例外、异常。
//Throwable
//Error 不可处理
//Exception
2.查询API,填空
I.异常类java.rmi.AlreadyBoundException,从分类上说,该类属于____(已检查|运行时)异常,从处理方式上说,对这种异常____处理
II.异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于____已检查|运行时)异常,从处理方式上说,对这种异常____处理
//已检查 必须 (AlreadyBoundException extends java.lang.Exception)
//运行时 可处理可不 (extends IllegalArgumentException,IllegalArgumentException extends RuntimeException)
3.(异常的产生)把下面代码补充完整
public class TestThrow {
public static void main(String[] args) {
throwException(10);
}
public static void throwException(int n) {
if(n == 0) {
//抛出一个NullPointerException
throw new NullPointerException();
}else {
//抛出一个ClassCastException
//并设定详细信息为"类型转换出错"
throw new ClassCastException("类型转换出错");
}
}
}
4.(try-catch-finally)有如下代码:
import java.io.*;
import java.sql.*;
public class TestException {
public static void main(String[] args) {
System.out.println("main 1");
int n=4;
//读入n
ma(n);
System.out.println("main2");
}
public static void ma(int n) {
try {
System.out.println("ma1");
mb(n);
System.out.println("ma2");
}catch(EOFException e) {
System.out.println("Catch EOFException");
}catch(IOException e) {
System.out.println("Catch IOException");
}catch(SQLException e) {
System.out.println("Catch SQLException");
}catch(Exception e) {
System.out.println("Catch Exception");
}finally {
System.out.println("In finally");
}
}
public static void mb(int<