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(); } } } |
相关文章推荐
- Eclipse设置、调优、使用
- java--面向对象
- jdk安装错误error could not open jvm.cfg
- java--选择排序
- eclipse Kepler 安装 SVN Plugin + Groovy Plugin
- java--冒泡排序
- java中volatile关键字的含义
- 黑马程序员——java基础---JDK1.5新特性
- java--多态_接口
- 深入Java关键字null
- java--基础
- 搭建struts2框架
- 疯狂java讲义之类加载与反射
- java数组转化成集合
- 同大家分享一些java程序性能提升的一些小技巧
- java拾遗1----XML解析(一) DOM解析
- Java socket
- 【翻译】《Java™ I/O, 2nd Edition》-14.0 前言
- 基于无向图且权重单一的最短路径Dijkstra算法——JAVA实现
- maven+springMVC+mybatis+junit详细搭建过程