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){
}
}