把打印语句System.out.println(output);放在main函数最后,打印的结果是13423,foo(0);foo(1);先执行foo(0)中的try语句中的output +="1"; 再执行finally中的output+="3"; 最后执行output+="4";这时output+="134";然后接着执行foo(1)中的try,因为实参为1,所以执行if语句,抛出异常,然后执行异常语句,output+="2";因为output为static类型,所以output="1342"; 接着执行finally语句output+="3";因为 finally语句必须执行,执行完这两个函数以后,output的值为13423 参考下图
|