面试题:如果catch里面有return语句,请问finally里面的代码会执行吗

tech2022-11-04  108

package cn.itcast_09; /* * 如果catch里面有return语句,请问finally里面的代码会执行吗? * 如果会,请问是在return前,还是后 * finally的代码会执行 * 在return前面 * 准确的说,因该是在中间 */ public class 面试题2如果finally之前有return { public static void main(String[] args) { System.out.println(getInt()); } public static int getInt() { int a = 10; try { System.out.println(a/0); a=20; }catch(ArithmeticException e) { a = 30; return a ; /* * return a在程序执行到这一步的时候,这里不是return a 而是return 30:这个返回路径就形成了。 * 但是呢,它发现后面还有finally,所以继续执行finally的内容 ,a = 40 * 再次回到以前的返回路径,继续走return 30; * * */ }finally { a = 40; return a ;//如果这样结果就是40 } } }
最新回复(0)