首页 百科知识 没有捕获到的异常

没有捕获到的异常

时间:2022-08-25 百科知识 版权反馈
【摘要】:由调用方法处理:如果没有外层的try语句,或者外层try语句也没有catch子句能够捕捉该异常,则由调用方法处理。由Java虚拟机执行默认程序:如果所有的方法都不能捕获该异常对象,那么Java虚拟机打印来自方法调用栈的异常信息,如果该线程不是主线程,那么终止这个线程,其他线程继续正常运行。

8.5.1 没有捕获到的异常

当try子句发生异常时,如果没有一个catch子句能够捕捉到,则按下列步骤进行处理。

(1)由外层try语句处理:如果try语句本身是另外一个try语句的try子句的一部分,那么异常就由该外层try语句的catch子句捕捉处理。

(2)由调用方法处理:如果没有外层的try语句,或者外层try语句也没有catch子句能够捕捉该异常,则由调用方法处理。

(3)由Java虚拟机执行默认程序:如果所有的方法都不能捕获该异常对象,那么Java虚拟机打印来自方法调用栈的异常信息,如果该线程不是主线程,那么终止这个线程,其他线程继续正常运行。如果该线程是主线程,那么整个应用程序被终止。

注意:异常对象总是沿着方法调用栈调用顺序的反方向传递。

【例8-13】 异常没有被捕获并在方法调用栈反方向传递,转由调用方法处理。

img525

下面是程序一种可能的运行结果:

TeachingException:教学计划问题!教学大纲设置等需学院自己解决。

分析与思考:goToClass()方法产生的TeachingException,FacilityException异常是受检查异常,该方法本身又不处理,所以要声明抛出让调用者去处理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈