有关Java中try catch的一个问题

请问trycatch语句中的catch和finally到底各代表什么意思啊,两者有其一就可以了,那两者同时存在呢?下面有两个例子,麻烦也帮我解释一下吧try{b1}cat... 请问try catch语句中的catch和finally到底各代表什么意思啊,两者有其一就可以了,那两者同时存在呢?下面有两个例子,麻烦也帮我解释一下吧
try{b1}
catch(Exception e)
{b3}
finally{b2}

另外一个
try{b1}
catch(Exception e)
{b3}
b2
麻烦举个例子帮我解释一下吧,谢谢了
那既然这两个都差不多,那么第一个里的finally到底有什么作用呢?

但貌似如果发现异常,第一个会执行b2,而第二个则不会执行b2,是这样吗?
展开
 我来答
rotter1999
2010-11-21 · TA获得超过385个赞
知道小有建树答主
回答量:318
采纳率:0%
帮助的人:362万
展开全部
try{
// 申请一些资源
// 然后做一些操作
} catch (操作的时候可能出一些错) {
// 把这个错误记录下来,可能有人需要看看
// 这个时候try里面的操作已经中断无法继续了
} finally {
// 把刚才申请的资源释放掉,不然多错几次资源就没了
}
唔製
2010-12-02 · TA获得超过1146个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:575万
展开全部
2个都会执行b2

1. 执行b1,如果执行过程成有异常,则执行b3,不管有没有异常最后都去执行b2

2. 执行b1,如果执行过程成有异常,则执行b3,然后执行b2

其实2者3执行的效果执行是差不多的,在下面这种情况下会发现效果会不同:
如果b1里面的最后一句是return,并且执行b1期间没有异常的话,第一题执行会完b2才去执行b1的return,第二题不会执行b2,而是直接执行b1的return

finally的意思是一定会执行,请运行一下下面的例子你就知道区别了

public static void main(String[] args) {
try {
System.out.println("try");
return;
} catch(Exception e) {
System.out.println("exception");
} finally {
System.out.println("finally");
}
System.out.println("no try catch");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式