您的位置:首页 > 编程语言 > Java开发

java--用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

2015-07-09 14:05 645 查看
/*

* 思路: 

* 要想证明程序的运行流程,那么就可以使用myeclipse中加入断电,然后debug单步执行,那么怎么在代码中实现呢,也就说怎么使用代码来证明呢? 

  * return是在finally执行后才返回的,且finally无法改变返回值

*/

package com.itheima;

public class Test5 {

 /**

  * 5、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly? 

  * @param args

  */

  public static void main(String[] args) throws Exception {   

          System.out.println("第一种:"+tryTest1());  

          System.out.println("第二种:"+tryTest2());  

          System.out.println("第三种:"+tryTest3());  

      }  

      //第一种方法,首先想到了利用数字来解决问题。想了想还是不能判断到底是先执行return还是先执行fianlly,只能来知道finally不能修改返回的值。   

      public static int tryTest1(){  

          int x = 0;  

          try {   

              x = 1;  

              System.out.print("try中的x值为:"+x+"----");  

              return x;  

         } catch (Exception e) {  

               // 处理异常   

          }finally{  

               x = 2;  

              System.out.print("finally中x值为:"+x+"----");  

          }  

           return 0;  

     }  

      //第二种方法,想了想就使用StringBuilder来试着解决一下问题。在finally里面加入return。   

       public static String tryTest2()  {  

           String x = "try*****";  

           StringBuilder sb = new StringBuilder();  

           try {  

              System.out.print("try1-----");  

              System.out.print("try2-----");  

              sb.append(x);  

               return sb.toString();  

         } finally {  

              sb.append("finally");  

              System.out.print("finally3");  

               //最后加入return   

               return sb.toString();  

           }  

      }  

     //第三种方法,finally里面没有家人return。   

       public static String tryTest3() {  

           String x = "try*****";  

           StringBuilder sb = new StringBuilder();  

          try {  

               System.out.print("try1-----");  

               System.out.print("try2-----");  

              sb.append(x);  

              return sb.toString();  

         } finally {  

              sb.append("finally");  

              System.out.print("finally3");  

               //最后加入return   

               //return sb.toString();   

           }  

      }  

    

   } 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: