今天看到一个有意思的程序,写下来
public
class
FinallyTest
{
private static int test () {
int i = 1 ;
try {
i = 2 ;
return i ;
} catch ( Exception e ) {
i = 3 ;
return i ;
} finally {
i = 4 ;
}
}
public static void main ( String [] args ){
FinallyTest finallyTest = new FinallyTest () ;
System . out . println ( " i= " + finallyTest . test ()) ;
}
}
private static int test () {
int i = 1 ;
try {
i = 2 ;
return i ;
} catch ( Exception e ) {
i = 3 ;
return i ;
} finally {
i = 4 ;
}
}
public static void main ( String [] args ){
FinallyTest finallyTest = new FinallyTest () ;
System . out . println ( " i= " + finallyTest . test ()) ;
}
}
运行结果是
i=2
为什么呢,不是明明在finally中赋值了i=4吗?
答案是:
(more…)