关于java中try….catch…finally用法:
1、在finally子句中的代码是最后执行的,并且是一定会执行的,即使try里面的代码出现了异常。
2、finally子句必须和try一起出现使用,不能单独编写。
一个try,可以有多个catch,但只能有一个finally,且顺序固定为:try…catch(可以多个)…finally。
一个try只跟一个finally也是允许的,可以没有catch。
一个try,(任意个catch,可以0个),一个finally。
3、finally语句通常使用在哪些情况呢?
当一些代码,不管try里面出现异常,还是没有出现异常,这些代码最终都是必须要执行的,那么这些代码可以放在finally语句中。如果放在try中,可能这些代码上面就已经出现了异常,而导致这些代码没有执行。所以说finally语句中的代码一般完成资源的释放与关闭,即使try中出现异常,也能有保障。
例:
-----------执行结果-----------------
func1
func2
2
分析:try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行。Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。所以,finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。