java异常:3、try-catch-finally 中哪个部分可以省略?如果 catch 中 return 了,finally 还会执行吗?

try-catch-finally 中哪个部分可以省略?

以下三种情况都是可以的:
try-catch
try-finally
try-catch-finally
可以省略catch或者finally。catch和finally不可以同时省略。

如果 catch 中 return 了,finally 还会执行吗?

会。

(1)finally的作用就是,无论出现什么状况,finally里的代码一定会被执行。

(2)如果在catch中return了,也会在return之前,先执行finally代码块。

(3)而且如果finally代码块中含有return语句,会覆盖其他地方的return。

(4)对于基本数据类型的数据,在finally块中改变return的值对返回值没有影响,而对引用数据类型的数据会有影响。

注:
finally也不是一定会被执行,如果在try代码块中,System.exit()强制退出程序,或者在执行try代码块中报错抛出异常(例如5/0),finally代码块就不会执行了。

你可能感兴趣的:(面试:异常处理)