下面有这么一个程序,代码如下:
public
class
ExceptionDemo
...
{


publicstaticvoidcreateException()throwsException...{
thrownewException("AnExceptioniscreate");
}


publicstaticlongget()...{

try...{
createException();
returnSystem.currentTimeMillis();//(1)
}

catch(Exceptionex)...{
System.out.println("C-time1="+System.currentTimeMillis());
returnSystem.currentTimeMillis();//(2)
}

finally...{
System.out.println("F-time2="+System.currentTimeMillis());(3)
}
}


publicstaticvoidmain(String[]args)...{
longa=get();
System.out.println("a="+a);//(4)
}
}
输出结果:
先打印
C-time1=1132934662156
再打印
F-time2=1132934662156
最后打印
a=1132934662156
从输出结果我们可以知道整个流程:
执行完catch字句中return 所有前语句,再执行finally,最后返回。
附:这道题曾经在我被面试的时候被问过,后来我面试别人的时候同样也用过。
































先打印
C-time1=1132934662156
再打印
F-time2=1132934662156
最后打印
a=1132934662156
从输出结果我们可以知道整个流程:
执行完catch字句中return 所有前语句,再执行finally,最后返回。
附:这道题曾经在我被面试的时候被问过,后来我面试别人的时候同样也用过。