异常问题

87 阅读1分钟

1.try{}catch(){}
try{

//可能出现的异常语句

}catch(Exception e){//e是接受异常语句抛出的异常对象

e.prinStackTrace();//可以理解为输出该异常的具体信息

}

2.finally
try{

可能出现的异常代码块

}

catch(ExceptionName1 e){

当产生ExceptionName1异常时的处理措施

}

catch(ExceptionName2 e){

当产生ExceptionName2异常时的处理措施

}.........

finally{

//无论是否捕捉到异常都必须处理的代码

}

finally的作用:

无论try所指定的程序块中是否抛出异常,也无论catch语句的异类类型是否与所抛弃的异常类型一致,finally中的代码 一定会得到执行。

finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态做统一的管理。

通常可以在finally语句中可以进行资源的清除工作,如关闭打开的文件,删除临时文件等。

3.throw
格式:throw new 异常名(参数);

假设f方法抛出了异常,则f方法中有两种方法处理A异常

1.throw A(谁调用f方法,谁处理A,f方法本身不处理异常)

2.try{...}catch(){...}(f方法本身自己处理异常)

eg:

class A extends Throwable{

}

class M{

public void f() throws A{

throw new A(); //要抛出的异常,必须得是Throwable的子类

}

}

public class text{

public static void main(String[] args){

}

}