关闭

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

85人阅读 评论(0) 收藏 举报

/*
* 思路: 
* 要想证明程序的运行流程,那么就可以使用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();   
           }  
      }  
    
   } 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3343次
    • 积分:281
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档