try catch方面的代码执行问题,求解答为什么try块的代码是不是异常抛出

img

10/0 抛出的异常被捕获,因此会执行 catch 中的代码,finally 代码块也是一定会执行的,可以如下理解 try catch finally 代码的执行顺序。

  1. try 代码块中的代码先执行。
  2. catch 捕获到 try 代码块中的异常,将 i 的值设置为 4,然后将返回结果 4 缓存下来准备 return。
  3. finally 代码执行将 i 的值设置为 5。
  4. catch 将缓存的结果 4 return。

执行结果 i = 4 与 java 代码在底层使用栈这种数据结构执行有关,对于初学者,只需要简单认为 catch return 的值是之前缓存下来的即可。

catch捕获异常之后进行如下操作
i = 4
返回i值啊
没问题