1.代码实例
2.运行情况
1.代码没有抛出异常
执行顺序1-2-5-6
2.抛出一个在catch语句中捕获的异常
1.如果catch语句没有抛出异常
执行顺序1-3-4-5-6
2.如果catch语句抛出异常
执行顺序1-3-5
3.代码抛出异常但是没有被补货
执行顺序1-5
3.try finally字句
1.代码实例
无论try语句当中是否会发生异常,finally都会被执行。
在我们认为需要关闭资源的时候,使用这个子句是一种比较好的选择。
强烈建议解耦和try/catch和try/finally语句块。这样可以提高代码的清晰度。
内层的try语句确保关闭输入流。外层的负责报告错误。这种方式还会报告finally子句中出现的错误。
上面代码如果调用f(2)结果将会返回0,因为finally语句里的return会覆盖。