先说下关于他们的一个执行情况,try,catch什么情况就不说了,在什么情况运行这个都知道,finally 也是一样的不管程序有没有错误也会执行。现在主要就是一个执行顺序的问题。 下面一段代码来引入
public static String fun() {
try {
//int a=1/0;
System.out.println("111111111");
return "0000000";
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}finally {
System.out.println("finally");
}
return "222222222222";
}
比如以上代码 其实有无错误都不重要要,有无错误只是确定代码具体执行的是try,还是catch。也不管return 在什么地方,它都是在try,catch,finally运行完毕后再执行return,finally也总是会执行的,并且在return前一步执行,所以finally 一般都是用作于关闭资源的,并且也不要再finally里面加上什么返回语句,只要finally有return语句都只会执行finally里面的return语句。所以这点要谨记,也不要把要把在finally关闭的资源作为返回值,这样是没有意义的,因为在返回之前finally已经把它关闭了。大概也就这些吧