很多人搞不清楚catch和finally执行顺序,有人会说,当然是先catch后finally,没错,是的这样的,但当catch和finally中都有return语句的时候,他们的执行顺序又该是怎么样的呢?在这样的情况下我们可以这样理解,catch会把它return的对象先保存在一个栈中,如果finally中也有return语句,就将该对象入栈,当finally语句执行完毕之后,就取栈顶的对象返回,可以来看几个点单的例子:
test1方法返回4
test2方法返回0
你还可以在finally做一些重新赋值,打印日志等操作。
test1方法返回4
test2方法返回0
你还可以在finally做一些重新赋值,打印日志等操作。