|
关于异常处理书中的论述:
(1)当异常发生时,系统将搜索与当前try块相关的最近的可以处理该异常的catch块,
(2)如果与当前try块相关的所有catch块都不能处理该异常,则沿着堆栈向上搜索封闭该异常代码的try块及其相关联的catch块。
(3)如果还没有找到,则重复上述过程,直到找到catch块。
(4)如果到达堆栈顶部任然没有找到处理该异常的catch块,则由默认的一场处理程序处理该异常,然后应用程序终止。
问题是:catch 怎么知道这个异常归我处理,通过catch()括号中的表达式吗?但我看到的书中例子似乎没有对异常作出判断。书中179页,一个try嵌套语句例子,第一try已经处理了异常,为什么最外层的try还会处理这个异常?这种冒泡式的处理到底是什么时候停止冒泡 ? |
|