程序段如下:
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);
foo(1);
System.out.println(output);
}
}
执行结果如下:
分析:try-catch-finally程序块是一个整体,当执行catch里面的return之后,finally里面的代码块也是要执行的。