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

原创 2015年07月09日 14:05:03

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

在try中写了return,后面又写了finally,是先执行return还是先执行fianlly

在java的学习中,关于异常的处理是很重要的一环,笔者最近在学习这一方面的知识时就遇到了一个问题:就是在try语句块中写了return,但后面又写了finally语句,那么程序到底是先执行return...

Java try/catch/finally代码块中加入return后的执行顺序问题

finally可以分两方面理解 1.执行时机问题。finally总会执行(除非是System.exit()),正常情况下在try后执行,抛异常时在catch后面执行 2.返回值问题。可以认...

试问,若在try语句块里有一个return语句,同时这个try语句块后面还有一个finally语句块,请问finally语句块里的代码会不会被执行?若答案是肯定的,那么会在什么时候被执行?是在retu

这是一个很有趣的问题,我测试的结果是:是在return中间执行。 我在网上搜寻了一些资料,下面是参考代码: 1 /** 2 * 3 */ 4 package com.b5...

有 Return 的情况下 Try Catch Finally的执行顺序(详细的代码以及解释)

结论: 【1】不管有没有出现异常,finally块中代码都会执行; 【2】当try和catch中有return时,finally仍然会执行; 【3】finally是在return后面的表达式运算后执行...

Java中try catch finally语句中含return语句的执行情况总结-编程陷阱

前言:有java编程基础的人对java的异常处理机制都会有一定了解,而且可能感觉使用起来也比较简单,但如果在try catch finally语句块中遇到return语句,开发者可能就会遇到一些逻辑问...

Java中try catch finally语句中含有return语句的执行情况(总结版)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17485221     在这里看到了try catch finally块中...

Java中try-catch-finally-return的执行顺序

转载自:http://qing0991.blog.51cto.com/1640542/1387200

Java异常处理机制以及try-catch-finally-return执行顺序

一、异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”,异常是一种对程序运行过程中发生错误时进行通知的机制。如:网络连接失败、用户输入错误或打开文件失败等。异常以对象的形式出现,不同的异...

Java中try catch finally语句中含有return语句的执行情况(总结版)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17485221     在这里看到了try catch finally块中...

浅析Java try....catch....finally中return语句执行顺序

浅析Java try….catch….finally中return语句执行顺序
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)