try{
需要被检测的代码;
}catch(异常类 变量){
处理异常的代码;(处理方式)
}finally{
一定会执行的代码;
}
- 声明异常时建议将异常声明为更加具体的异常。
- 如果生命的异常有多个并且异常之间有继承关系时,将父类异常写在最后的一个catch语句里。
- 一般情况下,函数内出现异常时,函数上也要声明该异常,如果函数内的异常在函数体内得到处理则函数上可以不用声明异常。
- 自定义得异常一般继承于Exception和RunTimeException类。继承RunTimeException类的异常可以不用处理。
- throws:声明在函数上,可以抛出多个异常,抛出的是类。
- throw:生命在函数内,只能抛出一个异常,抛出的是对象。
- RunTimeException及其子类:如果在函数内抛出该异常,函数上可以不用声明,编译通过。如果函数上声明了该异常,调用者可以不用进行处理。编译通过。
- 自定义异常,如果该异常产生后需要程序停止执行,就让自定义类继承自RunTimeException类。
- finally中定义的是一定会执行的代码。一般用于关闭资源。final前执行了
exit(0);
语句,则final的语句不会被执行。 - 父类函数有异常类型A,子类在对父类函数进行重写时,也要抛出异常A或者异常A的子类异常。
- 如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。