浅谈对finally的理解

  总所周知,finally一般用于在一些处理异常的时候来关闭一些资源,例如关闭数据库的连接;

  finally可以和try或者try.catch一起使用,不管try和catch中出没出现异常,finally块中的代码都会执行,但是如果在try之前出现了异常,那么程序将不会继续执行下来,即到达不了finally块,这是一种finally不能执行的情况,还有一种情况就是在try中执行了System.exit(),那么程序立马退出,也不会执行finally里的代码;

  值得一提的是当try和finally中都出先 return 语句的时候,首先try中的return的值并不是立马返回,而是存在于一个暂时的栈里面,然后查看finally块中存不存在return,若是不存在,则将暂时栈中的值返回即可,若是发现finally块里面也存在return,则会将暂时栈里的值放弃,并且返回finally里面的return的值。

posted @ 2018-03-18 22:05  fengnian  阅读(363)  评论(0编辑  收藏  举报