try中有return 和finally哪个先执行
package me.luger.base;public class FinallyReturnTest { public static void main(String[] args) { tt(); } // finally中的代码是必须要执行的,而且是在return前执行,除非碰到exit()。 static Return tt() { try { return new Return("try"); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("finally"); } return new Return("outter"); }}class Return { Return(String name) { System.out.println("return " + name); }}
public class Test { /** * @param args */ public static void main(String[] args) { System.out.println(getString()); } static String getString(){ try{ return "SUCCESS"; }catch(Exception e){ }finally{ System.out.println("Finally is executing"); return "ERROR";//如果这句放在finally之外呢? } }}
[解决办法]