基本结构
try
{
}
catch(<exceptionType> e)
{
}
finally
{
}
也可以只有try块和finally块,而没有catch块,或者有一个try块和好几个catch块。如果有一个或多个catch块,finally块就是可选的,否则就是必需的。
代码的用法如下:
try——包含抛出异常的代码
catch——包含抛出异常时要执行的代码
finally——包含总是执行的代码,如果没有产生异常,则在try块之后执行,如果处理了异常,就在catch块后执行,或者在未处理的异常上移动到调用堆栈之前执行。
在try块的代码中出现异常后,发生的事件依次是:
1、try块在发生异常的地方中断程序的执行
2、如果有catch块,就检查该块是否匹配已抛出的异常类型。如果没有catch块,就执行finally块(如果没有catch块,就一定要有finally块)
3、如果有catch块,但它与已发生的异常类型不匹配,就检查是否有其他catch块
4、如果有catch块匹配已发生的异常类型,就执行它包含的代码,在执行finally块(如果有)
5、如果catch块都不匹配已发生的异常类型,就执行finally块(如果有)