5 关于我们的编程的一点建议
弄清楚try-catch-finally的执行情况后我们才能正确使用它。
如果我们使用的是try-catch-finally语句块,而我们又需要保证有异常时能够抛出异常,那么在
finally语句中就不要使用return语句了(finally语句块的最重要的作用应该是释放申请的资源)
,因为finally中的return语句会导致我们的throw e被抛弃,在这个try-catch-finally的外面将只能
看到finally中的返回值(除非在finally中抛出异常)。(我们需要记住:不仅throw语句是
abrupt completion 的原因,return、break、continue等这些看起来很正常的语句也是导致
abrupt completion的原因。)