1.finally块和最外层有且只能有一个return,否则出编译期错误。(catch块不影响此结论)
——> try块和最外层有且只能有一个return,否则出编译期错误。(try块有时,catch块也必须有return)
——> return可以不写在外层而写在finally里,但是会报警告。(try块,catch块不影响此结论)
2.finally有return时,不管有没有异常,都会从finally的return跑掉
——> try块有return。没有异常(不进入catch块)时,finally块有return走finally,否则走try的return。
——> 外层有也不走,其实是运行到try的return时,执行finally在返回try的return,但是finally也有return,所以相当于半路跑路了
——> try块有return。有异常(进入catch块)时,finally块有return走finally,否则走catch的return。
|