System.out.println("catch statement :-)");
} finally {
System.out.println("finally statement :-)");
}
System.out.println("out of try...catch...finally statement");
}
}
执行结果(无异常,return 返回,所以finally代码块后面的语句就不会执行:-)
以上种种迹象表明:
finally 语句都被执行了,但是还有另外一种情况没有被验证,接着往下看
就是在 try...catch... 里面退出 JVM :
[java]
public class TryCatchFinally {
public static void main(String[] args) {
try {
System.out.println("try statement :-)");
Integer.valueOf("2eer");
System.exit(0);
} catch (NumberFormatException nfe) {
System.out.println("catch statement :-)");
System.exit(0);
} finally {
System.out.println("finally statement :-)");
}
System.out.println("out of try...catch...finally statement");
}
}
执行结果:

try 或者 catch 语句里面(任意一个)调用 System.exit ,那么 finally 语句就不会被执行。
作者:AndroidBluetooth