1.try-catch-finally 程序块的执行流程大致分为两种情况:
(1)如果 try 块中所有语句正常执行完毕,那么finally 就会被执行。
(2)如果 try 语句块在执行过程中碰到异常,无论这种异常能否被catch块捕捉到都将执行 finally块中的代码。
2.try-catch-finally结构中try 块是必须的,catch和finally块为可选,但二者至少出现其一。
特别注意:
即使在try块和catch块中存在return语句,finally块中的语句也会被执行。
发生异常时的执行顺序:
执行try块或catch中return之前的语句,执行finally块中的语句,执行try块或catch中的return语句退出。
3.finally 块中语句不被执行的唯一情况:
在异常处理代码中执行System.exit(1), 将退出Java虚拟机。