java处理异常以后程序会如何执行

java处理异常以后程序会如何执行

问题产生:当产生异常后,并在异常处理器中进行执行以后,程序会是如何的一种状态,是终止仍是继续执行处理以后的代码呢?

先上代码:
例子
由以上的代码咱们能够知道在抛出异常以后的代码都会被编译器视做无用的代码,进一步会显示的报错。所以更谈不上以后的代码能够执行了。
进一步修改以后,咱们采用如下的代码进行测试
例子
例子
能够得出如下的结果:
例子
从结果中咱们能够看出,当主程序(main)捕获到异常以后,会进一步进行处理,随之处理完以后会进一步执行以后的代码。java

接下来咱们看另外一种状况:
例子
咱们将对第一种的异常放在其余的类方法种进行捕获,咱们从上图能够看出throw new Exception("第二种异常哈")以后的代码仍然视为无用。接着咱们在主程序(在另外一个类中)进行调用当前的方法并对其进行捕获。
例子
运行程序得出如下的结果:
例子
咱们能够看出在第一种异常捕获以后并抛出第二种异常时,并不会去执行其后的代码,finally里面的代码除外。测试

由此,就最开始的问题以及以后的分析,咱们能够得出如下的结论:spa

  1. 在同一个做用域下,throw抛出异常以后的代码都视为无用,这个会被编译器显示的报错。
  2. 当前做用域下的无抛出异常,当捕获了异常并处理以后,其后的代码会继续执行下去

以上都针对于检查型异常而言的。作用域

相关文章
相关标签/搜索