try finally return
public class Test2 { public static void main(String[] args) { System.out.println(Test2.testFinally()); //a c b } public static String testFinally(){ try{ System.out.println("a"); return "b"; }catch(Exception e){ e.printStackTrace(); }finally{ System.out.println("c"); } return "d"; } }
无论有没有发生异常,finally总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。
try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }
catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 }
finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }