第十四章 错误和异常
搞懂下面这些情况的异常处理情况就OK了!
try
{
// Point A
try
{
//Point B
}
catch
{
//Point C
}
finally
{
// clean up
}
// Point D
}
catch
{
//error handling
}
finally
{
// clean up
}
1. 如果在A.D出发生异常,则有外层Catch捕捉和外层 finally处理
2.如果在B出抛出,且有一个合适的内层Catch处理,就会执行内层的catch及finally
3.如果在B出抛出,内层没有合适的catch捕捉,则执行内层的finally块,退出内层try块,继续搜索外层的catch块。如果找到合适的处理程序,就执行处理程序,再执行外层的finally块,还是没有找到,执行外层的finally块后继续搜索。注意,D代码不会被执行
4 如果在C处抛出,则跟1情况类似,退出catch块,执行内层的finally块。在外层的catch种搜索处理程序。
5 如果在内层的finally块抛出异常,从外层的catch块开始搜索匹配的处理程序。