try、catch、finally 、throw、 throws
程序的流程是:
运行到try块中,如果有异常抛出,则转到catc块,catch块执行完毕后,执行finally块的代码,再执
行finally块后面的代码。如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行
finally块后面的语句
throw是语句抛出一个异常;throws是方法抛出一个异常;throws可以单独使用,但throw不能;throw
要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由
处理异常的方法捕获。
throws是获取异常
throw是抛出异常
try是将会发生异常的语句括起来,从而进行异常的处理,catch是如果有异常就会执行他里面的语句
,而finally不论是否有异常都会进行执行的语句。
try{}用来定义需要被检测的代码,catch(){}用来处理异常的代码,
finally{}中是一定会执行的代码
注意:
1,finally中定义的通常是关闭资源代码。因为资源必须释放。
2,finally只有一种情况不会执行。当执行到System.exit(0);finally不会执行。
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。
注意:RuntimeException除外。也就说,函数内如果抛出的RuntimeException异常,函数上可以不用
声明。
try {
这里写可能出错的代码
} catch (Exception e) {
这里写可能出现的错误异常的处理
}finally{
这里写一定会执行的代码,有些资源需要关闭的时候
}
throw和throws写在main方法的大括号的前边,当有一个异常的时候使用throw,有多个异常使用
throws
一般情况下,对需要处理的异常使用try catch finally ;
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
异常处理语句:
try
{
需要被检测的代码
}
catch ()
{
处理异常的代码
}
finally
{
一定会执行的代码
}
异常的注意事项:
在子父类覆盖时:
1,子类抛出的异常必须是父类的异常的子类或者子集、
2,如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try处理不能抛出
。
可以参考http://blog.csdn.net/ronawilliam/article/details/3299676