请教一个关于try catch的问题

问题描述

代码如下:public class FinallyFlowTest {public static void main(String[] args) { int a = test(); System.out.println(a);}private static int test() {int count=5 ;try{return count++;}finally{System.out.println("finally块执行了"); ++count ;}}}输出结果为:finally块执行了5改动一下,程序如下:public class FinallyFlowTest {public static void main(String[] args) { int a = test(); System.out.println(a);}private static int test() {int count=5 ;try{return count++;}finally{System.out.println("finally块执行了");return ++count ;}}}输出结果:finally块执行了7请达人帮我分析一下,3Q

解决方案

第一段:进入try时count=5;return count++; 求出结果值count = 5count++ //count = 6进入finally ++count ; //count = 7返回结果值count为5第二段进入try时count=5;return count++; 求出结果值count = 5count++ //count=6进入finally return ++count ; count = 7并返回
解决方案二:
第一个你因该知道了第二个:# finally # { # System.out.println("finally块执行了"); # return ++count ; -----最终走了这个return# # }
解决方案三:
第一段代码的返回的是:try里面的 count,return count++;返回的值是:5 所以输出结果是:5;第二段代码返回的是 finally里面的 count private static int test() { int count=5 ; try { return count++; //返回count的值为5 返回后count=6 } finally { System.out.println("finally块执行了"); return ++count ; //返回前加一 count=7 } } 另外要注意:finally块里面的语句 无论何种情况 都要执行
解决方案四:
你记住return对于finally代码快是不起作用的,还是会执行finally里的代码!

时间: 2024-09-26 17:16:05

请教一个关于try catch的问题的相关文章

线程中止-请教一个JAVA线程的奇怪问题

问题描述 请教一个JAVA线程的奇怪问题 在学习JAVA线程时候的遇到一个很奇怪的现象.让我们先来看代码 public class TestThread { public static void main(String[] args) { IRun ir = new IRun(); Thread it = new Thread(ir); it.start(); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger

请教一个数据库分组问题

问题描述 请教一个数据库分组问题 我写了这么一个脚本 SELECT da_sp.spdm da_sp.sp da_sp.jldw da_sp.ggxh da_sp.wbdw da_sp.wbbzl da_sp.nbdw da_sp.nbbzl da_sp.cbj da_sp.zhjj da_sp.pddw da_sp.pdxs da_sp.fdyclbj da_sp.zjpsbj xs_jxcrb.spnm sum(xs_jxcrb.cksl) as cksl isnull(c.bqsl0) a

新人请教一个sscanf中的正则表达式的问题

问题描述 新人请教一个sscanf中的正则表达式的问题 比如一串字符我要取其中的数字,df3600sdf365dssdfwef2135fewe@35@#%dsaf54我用""%*[^0-9]%[0-9]""只能取到3600,""%*[^0-9]""也错误..应该怎么取啊 解决方案 正则 直接用 d+ 即可 解决方案二: 这个应该怎么写..求写法

java-小弟想请教一个问题.对于大神们来说很简单

问题描述 小弟想请教一个问题.对于大神们来说很简单 小弟的这个程序很简单 但是对于小弟来说实在是太难了 本来前面的已经实现了,但是算总分的时候第二个人的成绩总是要和第一个成绩相加,这是程序这是运行后的结果就想问问大神怎么做把两个人的总分成绩分开 求大神帮帮忙哈 解决方案 zhongfen[i]=bianliang; 下一行加上 bianliang=0; 解决方案二: 变量 bianliang 在每次输入学生姓名是清零.

请教一个关于java的项目问题

问题描述 请教一个关于java的项目问题 解决方案 类似的http://down.51cto.com/data/2009264http://download.csdn.net/detail/u010777420/5426033 解决方案二: 你自己先试着做呗,你先熟悉Java Web从前台到后端的流程,一块块地实现,自己实现的东西,即使碰到问题,自己解决,收获会很大的. 解决方案三: 这跟我前一段时间写的 差不多, 用 java web, 我博客里有内容分页实现,登录注册,类比的可以写出来这些,

ext 权限 menu 动态-我想请教一个关于Ext JS4根据权限动态生成左侧树形菜单,和上侧Menu下拉菜单。

问题描述 我想请教一个关于Ext JS4根据权限动态生成左侧树形菜单,和上侧Menu下拉菜单. 我现在根据自己想的写了一个动态生成树的例子:数据库有 用户表 : 里面有个角色id ,角色表: 里面有个可以访问页面的Id号.然后我登陆的时候会判断用户拥有哪些id号,再根据id号生成树形菜单. 现在我在页面上侧加Menu的下拉菜单.也想根据权限生成,但是没有思路..想请教下各位,有什么例子可以借鉴 或者指点一下.谢谢啦 ~~

app-我想请教一个AS菜鸟级别问题

问题描述 我想请教一个AS菜鸟级别问题 Error:Execution failed for task ':app:processDebugManifest'. Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 7 declared in library [com.android.support:appcompat-v7:23.0.0] D:WorkSpaceMediaPlayerap

后台-请教一个关于网站用户密码保存的问题

问题描述 请教一个关于网站用户密码保存的问题 之前自己做过一个简单的网页有登录注册功能的,但是我是直接将用户注册的名字和密码保存在数据库中,换句话说,我可以在数据库里直接看到用户的密码.当然这只是一个个人简单的小demo,但我想问一下,在实际投入运行的网站中,他们是怎样保存用户的密码的?后台人员能够从数据库中看得到用户的密码吗?如果看不到,那比如我们要修改密码的话,后台又是如何判断我输入的密码是否是原来的密码? 求教一下~谢谢~ 解决方案 一般来说,我们使用哈希(Hash)算法来存储密码. 其中

c++-请教一个CCLIENTDC的问题

问题描述 请教一个CCLIENTDC的问题 一个MFC对话框程序在DLG类的头文件里面定义一个非指针的CCLIENTDC, 在函数中不能调用,错误信息要求你初始化在构造函数里,但是这个函数怎么初始化呢 如果写成 DD(THIS),在构造函数里不能这样写,通不过,如果括号里面写成0的话 又不能在本窗体中画,就不知道跑到哪里去画了. 解决方案 菜鸟请教一个愚笨的问题在这里请教一个问题请教一个关于编码的问题 解决方案二: 错误信息,是编译出错的信息吗? 定义一个 DC,需要与上下文关联后才能使用的,否