`
wangqisen
  • 浏览: 47385 次
文章分类
社区版块
存档分类
最新评论

一个try catch 中的return 问题

 
阅读更多
public static int test(){
	    int i = 0;
	    try {
	        i++;
	        throw new Exception("eeee");
	    } catch( Exception e) {
	        return i;
	    } finally {
	        i++;
	    }
	}
	
	public static String test2(){
	    String test = "111";
	    try {
	        test = "222";
	        throw new Exception("eeeee");
	    } catch( Exception e) {
	        return test;
	    } finally {
	        test = "333";
	    }
	}
	
	public StringBuffer test3(){
	    StringBuffer test = new StringBuffer();
	    try {
	        test.append("123");
	        throw new Exception("Test");
	    } catch( Exception e) {
	        return test;
	    } finally {
	        test.append("456");
	    }
	}

其实这个问题,可以这样解释:

return的时候相当于赋值给一个中间变量,然后再return。例如,第一个test()中的return i,相当于int b=i;return b;

分享到:
评论

相关推荐

    try~catch~finally中关于return的问题

    在Java的异常机制中,如果finally中含有return语句,则try和catch中的return语句将会被JVM忽视

    Jungle68#-#[Java] try catch finally,try里有return,finally还执行么?1

    Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据

    try、catch、finally、return 执行顺序.doc

    try、catch、finally、return 执行顺序超详细讲解,包看包会。

    关于Java中的try-catch-finally语句和return

     第二:finally里面不建议放return语句,根据需要,return语句可以放在try和catch里面和函数的后。可行的做法有四:  1、return语句只在函数后出现一次。  2、return语句仅在try和catch里面都出现。  3、...

    谈谈Java中try-catch-finally中的return语句

    我们知道return语句用在某一个方法中,一是用于返回函数的执行结果,二是用于返回值为void类型的函数中,仅仅是一个return语句(return ;),此时用于结束方法的执行,也即此return后的语句将不会被执行,当然,这种...

    try-catch-finally执行顺序验证

    try、catch块内的return操作编译后会变成把return的值保存到变量var的操作。 总结: try、catch块内的return操作编译后会变成把return的值保存到变量var的操作. (1)如果finally中有return则执行finally中的return; ...

    try-catch-finally-return-in-finally.rar_return

    The production IfStatement : if ( Expression ) Statement else Statement is evaluated as follows:.

    puppet-trycatch

    这是一个简单的Puppet模块,其中添加了try和catch函数。 它们可以用来捕获在try块中引发的异常。 该模块使用V4函数API,因此您需要使用Puppet 4.x或将来的解析器使用Puppet3.7.x。 例子 $ret = try() || { assert_...

    VB.Net常用语法

    在一个try………end try 过程中可以使用catch与finally两个中的一 个,或者两个一起用, 二:Protected, private, Public 封装控制 这三个关键字一般放在语句最前面,而会置于overloads与Overrides的 后面...

    java面试题之try中含return语句时代码的执行顺序详解

    主要介绍了关于java中的一道面试题,这套题就是在try中含return语句时代码的执行顺序,这个问题看似简单,却暗藏杀机啊!文中通过一个个例子详细介绍了其中玄机,需要的朋友可以参考学习,下面来一起看看吧。

    try catch finally的执行顺序深入分析

    首先执行try,如果有异常执行catch,无论如何都会执行finally,当有return以后,函数就会把这个数据存储在某个位置,然后告诉主函数,我不执行了,接下来你执行吧,所以函数就会推出

    trycatchfinaly

    3. 但是如果有 finally块的话,那么,finally 几乎是必定会执行的,但是这里有一个先后顺序的问题,应该是 finally 块和 打印异常堆栈将会在另外一个线程之中执行,所以 打印的顺序就很有意思了。 4. 如果在try或者...

    Java中finally块执行与return关系深度剖析

    Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。

    AopArms-AopArms编写了Android开发中常用的一套注解,如日志、异步处理、缓存、SP、延迟操作、定时任务、重试机制、try-catch安全机制、过滤频繁点击、拦截等,后续还会有更多更强大的注解功能加入.zip

    今天带来一款Android中比较实用的注解框架AopArms,其用法简单,里面编写了Android开发中常用的一套注解,如日志、异步处理、缓存、SP、延迟操作、定时任务、重试机制、try-catch安全机制、过滤频繁点击等,后续还会...

    JS异常处理try..catch语句的作用和实例

    首先一个常识就是,在浏览器执行JS脚本过程中,当出现脚本错误,并且你没有手动进行异常捕捉时,他会在浏览器下面出现黄色的叹号,这是正常的,这也不是最重要的,最重要的是,出错行以下的所有JS代码将中停执行,这...

    try-lua:纯 Lua 相当于 lua-try (https

    这在protect() 中节省了一个if 子句。 但随后必须修改 try/co.lua。 #关于newtry()/protect() 简而言之,您可以使用 can newtry(finalizer)来制作一个函数包装器,该包装器可以应用于使用惯用的 Lu

    浅谈Python中的异常和JSON读写数据的实现

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try … catch … finally来处理异常,在Python中通过try … except … else来处理异常 一、以ZeroDivisionError为例,处理分母为...

    java大厂面经、直击BAT

    finally 一定会被执行,如果 finally 里有 return 语句,则覆盖 try/catch 里的 return , 比较爱考的是 finally 里没有 return 语句,这时虽然 finally 里对 return 的值进行了修改,但 return 的值并不改变这种...

    jdbc练习的一个工具类

    return DriverManager.getConnection(url, infos); } catch (SQLException e) { e.printStackTrace(); } return null; } public static void close(ResultSet rs, Statement stat, Connection con) {...

    数据库工具类DatabaseUtil.java

    * 语句, 这些语句可能是 INSERT, UPDATE 或者 DELETE 语句, 或者是一个不返回任何东西的 SQL 语句, 例如一个 SQL * DDL 语句. * * @param sql * an SQL <code>INSERT,<code>UPDATE</code> or * <code>DELETE...

Global site tag (gtag.js) - Google Analytics