为了账号安全,请及时绑定邮箱和手机立即绑定

try catch 的一些总结

1、不管有木有出现异常,finally块中代码都会执行;

2、当try和catch中有return时,finally仍然会执行;

3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;注意!!!:这里的返回值是基本类型的值。如果是list,map,自定义类等引用类型时,是影响返回结果的

4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

对于第三点,写两个代码来让大家更加清楚。

1. finally修改的基本类型是不影响返回结果的:

	public int test1(){
		int i = 1;
		try {
			i++;
			return i;
		}finally{
			++i;
		}
	}
//这段代码输出的结果是 2

2. 修改list ,map,自定义类等引用类型时,是影响返回结果的。

public List<String> test2(){
		List<String> items = new ArrayList<String>();
		items.add("aa");
		items.add("bb");
		try{
			items.add("cc");
			return items;
		}finally{
			items.add("finally");
		}
	}
//这段代码输出的结果是 [aa, bb, cc, finally]


正在回答

2 回答

mark

0 回复 有任何疑惑可以回复我~

good


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

try catch 的一些总结

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信