java异常复习
1、检查性异常:编译时会发现的异常。自定义检查性异常要继承Excepiton。
2、非检查性异常:运行时产生的异常。RuntimeExcepiton及其子类,自定义非检查性异常要继承RuntimeExcepiton。
3、捕获异常:如果有可能的异常产生,一般编译器会自己给你加上try/catch框的。
try{
//可能产生异常的语句
}catch(Exception e){
//捕获异常之后,对异常的操作
}finally{
//异常操作玩,必须要执行的语句,比如关闭IO什么的
}
4、finally:不是必须的。一般先执行catch里面的语句,再执行finially。如果catch里面第一句话是return,那么先执行finally。
5、throws:如果一个函数会抛出检查性异常,那么需要在声明的时候加上throws声明要抛出的异常,用于在外部捕获和处理。
6、throw:直接抛出一个异常。
package exceptionTest;
public class main {
public static void main(String args[]){
int a[] = new int[2];
a[0]=1;
a[1]=2;
//简单的捕获异常,以及使用异常对象的方法
try{
System.out.println(a[3]);
}catch(Exception e){
System.out.println(e);
}finally{
System.out.println("异常!");
}
//外部处理test内部抛出的异常
try {
test();
} catch (Exception e) {
System.out.println(e);
}
}
static class myException extends Exception{
public myException(){
super();
}
public String toString(){
return "myException";
}
}
//如果一个函数可能会抛出 检查性 异常,必须用throws声明
//静态方法里面使用静态内部类
public static void test() throws Exception{
myException e = new myException();
throw e;
}
}


浙公网安备 33010602011771号