如果在一个返回值不是void的函数中出现try-catch-finally代码块,那么return语句就有可能出现在这些代码块中。需要注意:
a.如果finally代码块中有return,则try和catch代码块中都不能有return(因为会被finally代码块中的return覆盖掉)。
b.如果try代码块中有return,则catch代码块中也必须有return(因为try代码块中的代码可能出异常,如果出了,try中的return就不会执行,此时如果catch中没有return,就相当于此时函数没有了返回语句)。
c.如果try和catch代码块中都有return,那么finally语句执行是在return之后,而且finally语句中的代码对将要return的值无效。
这个在冯佳老师的基础视频里貌似讲过 |