try{}finally{},,try{}这里执行完转向后finally{}还执行吗打个比方:
try{////打开数库进行一些操作
request.getrequestdispacther().fowrwad()//转向}
finally{/////关闭数据库方法}
教程上说finally中的代码是必执行代码。不知道转向后还会不会执行?

解决方案 »

  1.   

    既然是必须执行,就必然会被执行,不要说转向了(这仅仅只是个函数调用而已),你直接return都不会影响finally的执行。你自己估计下这个效果是啥:
    try {
      request.getrequestdispacther().fowrwad();
      System.out.println("Hello");
      return;
    } finally {
      System.out.println("World");
    }
      

  2.   

    finally 里的的操作时铁定要执行的
      

  3.   

        不管try有没有获取到错误,finally都会执行的,所以一般的关闭数据集和数据库连接什么的都在finally里写。
      

  4.   

    这种问题不要问,自己亲手DEBUG一步步走比你问更感性更能体会。
      

  5.   

    http://topic.csdn.net/u/20120607/07/9d3a5948-ca38-4eb9-a4f8-63400b34e13a.html
      

  6.   

    不管是执行try,还是执行捕获的catch异常,finally块中的语句是肯定会执行啦
      

  7.   

     兄弟,当时会执行的啦,只要你程序里出现了finally 语句,不管你在finally之前干嘛都始终会走finally语句的!但是兄弟有一点得注意:
       try {
        request.getrequestdispacther().fowrwad();
        System.out.println("Hello");
        System.exit(1);如果词语调用System.exit(1);则finally语句是不会执行的!因为你已经终止Java运行。
        return;
      }finally {
          System.out.println("World");
     }
      

  8.   

    finally块中的内容一定会执行,会在转向前执行。
      

  9.   

    除非程序中断。如这样:
    try {
     System.out.println("aaa");
     System.out.println("Hello");
     System.exit(0);    //中断程序!
     return;
    } finally {
     System.out.println("World");
    }这样后面的finally里的就不执行了,如果面试的时候面试官问你你就这样回答!
      

  10.   

    finally  最终会执行的方法。
      

  11.   

    用debug一步步来就行,这个是肯定会执行的!!
      

  12.   

    会执行的,你可以进入debug模式走断点看看他到底是怎么走的
      

  13.   

    [Quote=引用 2 楼  的回复:]finally 里的的操作时铁定要执行的
    顶死
      

  14.   

    永远记住一句话,它就是真理,就是规则,就是。。,那就是,不管到什么时候,finally语句块是铁定要被执行的。信耶稣,见上帝。。
      

  15.   

    不管是执行try,还是执行捕获的catch异常,finally块中的语句是肯定会执行啦错误,如下代码就不会执行finally里的代码
    public class Test {
    public static void main(String[] args) {
    try {
    System.out.println("try");
    System.exit(0);
    } finally {
    System.out.println("finally");
    }
    }
    }当然这是个特例,但如果是Y/N的选择题,一定要选择N
      

  16.   

    finally块中的内容一定会执行,如果使用转向或者return 它会先执行finally然后再执行其他的。我记得return 它是先获得返回的结果,然后执行finally 最后将获得的结果返回出去!
      

  17.   

    好吧,只有使用  System.exit(0);退出JAVA虚拟机的时候才不会执行。
      

  18.   

    只要try、finally出现后,是必然在你执行完try里面的代码后执行的,finally翻译出来就是最后的意思,记住这点就好了