请说出Exception的传播机制?
参考解答
情况1,异常的传播机制如下图所示:
- method1调用method2
- method2调用method3
- method3在执行过程中出现了异常,会检查本方法的catch块并判断是否有匹配,在上图中没有,这时method3结束调用,返回至method2
- 继续检查method2的catch块并判断是否有匹配,在上图用例中同样没有,这时method2结束调用,返回至method1
- 继续检查method1的catch块判断是否有匹配,在上图用例中还是没有,这时method1结束调用,这时线程中没有更多方法了,线程就会终止
情况2,异常的传播机制如下图所示:
- method1调用method2(同情况1)
- method2调用method3(同情况1)
- method3在执行过程中出现了异常,会检查本方法的catch块并判断是否有匹配,在上图中没有,这时method3结束调用,返回至method2(同情况1)
- 继续检查method2的catch块并判断是否有匹配,在上图用例中同样没有,这时method2结束调用,返回至method1(同情况1)
- 继续检查method1的catch块并判断是否有匹配,这回有一个catch块能够匹配此异常,这时将异常对象传入catch块,从此catch块位置恢复method1的运行