代码 

public  int main(String[] args)

    {
        try
        {
            int a = 10;
            return 10;
        }
        catch (Exception e) {
            // TODO: handle exception
            return 11;
        }
        finally
        {
            return 12;
        }

    }

原理解析try-catch-finally里面的return

上图表示其实这个例子的正常里面的return是没啥子用的都是通过字节码的goto到了finally catch也是go到了finally

注上图的使用javap -verbose 类名产生的字节码命令的表示(jdk版本是1.8的 可能1.7之前的实现不一样)




相关文章: