下面有这么一个程序,代码如下:
public
class
ExceptionDemo
...
{ public static void createException()throws Exception...{ throw new Exception("An Exception is create"); } public static long get()...{ try ...{ createException(); return System.currentTimeMillis();//(1) } catch (Exception ex) ...{ System.out.println("C-time1="+System.currentTimeMillis()); return System.currentTimeMillis();//(2) } finally ...{ System.out.println("F-time2="+System.currentTimeMillis());(3) } } public static void main(String[] args)...{ long a=get(); System.out.println("a="+a);//(4) } }
输出结果: 先打印 C-time1=1132934662156 再打印 F-time2=1132934662156 最后打印 a=1132934662156 从输出结果我们可以知道整个流程: 执行完catch字句中return 所有前语句,再执行finally,最后返回。附:这道题曾经在我被面试的时候被问过,后来我面试别人的时候同样也用过。
转载请注明原文地址: https://ibbs.8miu.com/read-22546.html