刚才在网上看到一段代码,发帖子的人说为什么没有打印A,我知道是主函数在运行func()的时候,抛出异常,jvm就会跳出try中的代码,不在执行func()方法后的代码,然后把异常对象当做参数传递给catch,然后执行catch中的代码。那func()方法中的,finally什么时候执行啊,是第一个打印,还是最后打印,解释下原因?是不是太幼稚了这个问题,呵呵
class Test
{
public static void main(String[] args)
{
try
{
func();
System.out.println("A");//此处的A为什么没有打印呢
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
public static void func() throws Exception
{
try
{
throw new Exception();
}
finally
{
System.out.println("B");
}
}
}
|