黑马程序员技术交流社区

标题: 关于异常中finally代码块的问题 [打印本页]

作者: 唐巍    时间: 2012-3-11 03:52
标题: 关于异常中finally代码块的问题
finally代码块中的代码是不是一定会被执行?有finally代码块中的代码不会执行的情况吗?
作者: 李明伟    时间: 2012-3-11 07:41
本帖最后由 李明伟 于 2012-3-11 07:49 编辑

finally一般是与try   catch一起使用的,先执行try内的语句,如果异常。就执行catch,最后执行finally中的代码,但是如果finally内也使用了try  catch,如果发生了异常则不会全部执行finally内的语句,还有就是如果在finally执行之前程序就退出啦,例如执行啦,System.exit(0),或者是程序进入了死循环,都不会执行finally语句
作者: 宋洪祥    时间: 2012-3-11 09:22
通常情况下,finally代码块是会被执行的,但是,
如果程序永远也不会运行到那里去,finally的代码就不会被执行
作者: 王杰    时间: 2012-3-11 09:32
楼上说的很详细了。我就附上一段finally块没有执行的代码吧。
  1. class Test
  2. {
  3.     public static void main(String[] sg)
  4. {
  5.       try{
  6.         throw new Exception("抛出异常");
  7.        }
  8.       catch(Exception e){
  9.       System.exit(0);
  10.        }
  11.        finally{
  12.        System.out.println("finally代码块")
  13.        }
  14. }
  15. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2