从学习Java以来,只是知道try/catch/finally,从来没有想过,如果顺序换了会出现什么结果。
以前的写法都是先catch,最 后再finally。而这里我们是先finally,再catch。
刚开始以为两种执行顺序都是一样的。不过通过代码试之后才发现不一样。
下 面给出另一种写法的测试代码。
try{
try {
int i=0;
int d = 10/i;
}finally{
System.out.println("finally");
}
}catch(Exception e){
System.out.println("catch");
}
看到上面代码执行 顺序就想到,如果我们要把资源关闭,在资源抛出异常之前就关闭掉,安全性会不会更好呢。这点没有测过。也不知道虽然顺序不一样,但是效果还是一样的。
在 这里发出来,一是想告诉不知道的人知道这种写法,另外一个目的,是想借问一些知道的人,告诉我,这两种写法,存在 什么差别?谢谢