继承和接口实现中的异常处理——异常去哪儿了?

对于异常的问题,是一个困扰了我很长时间的一个问题,异常在继承关系中是如何处理的,后来又发生了什么?网上有很多去讲解这个的文章,但是千篇一律,你抄我的我抄你得,我有自己的想法。今天有点时间就做了个实验。但是不管怎么样,运行期异常都是交给JVM虚拟机去处理了。这里只谈继承和实现的处理。

    首先是继承,子类的方法中有异常抛出,那么就必须要交给父类,我写了简单的一个方法,为了表现的更清楚,截了个图:

继承和接口实现中的异常处理——异常去哪儿了?

这个图只是表名了,如果异常中有继承关系,异常是一定要处理的,至于交给谁?请看下图:

继承和接口实现中的异常处理——异常去哪儿了?继承和接口实现中的异常处理——异常去哪儿了?

对的,是交给他的爸爸!!这样孩子把自己处理不了的异常抛给了他的父类去处理,这也是我们创建对象的时候为什么尽量使用父类去创建。然后,最后交给线程或者main方法去处理,或者直接消化掉。

既然这样,那么接口呢?一样的,实现类会把异常交给接口,然后接口再去找main方法或者线程去处理,或者通过其他方法消灭掉,不多说,请看图:

继承和接口实现中的异常处理——异常去哪儿了?


提示的结果:

继承和接口实现中的异常处理——异常去哪儿了?