package mypack1;
class Test
{
public static String output = "";
public static void foo(int i)
{
try
{
if (i == 1)
throw new Exception();
output += "1";
} catch (Exception e)
{
output += "2";
return;
} finally
{
output += "3";
}
output += "4";
}
public static void main(String args[])
{
foo(0);
System.out.println(output);// 此时字符串 output的值得变成了"134"
foo(1);// 遇到了异常,output += "1";不再执行。 程序流跳转到时catch块中。
//运行到return的时候 output="1342"
//遇到return,方法调用结束前,必须执行finally{}里面的语句。
//这时output="13423",方法调用结束。
System.out.println(output);
}
}
注意:try{}catch{}finally{}的执行流程。再中途不管遇到什么情况使程序流程跳转或遇到 return; 使程序结束之前,都必须执行finally{}里面的语句。 |