有关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,是这样吗? 展开
try{b1}
catch(Exception e)
{b3}
finally{b2}
另外一个
try{b1}
catch(Exception e)
{b3}
b2
麻烦举个例子帮我解释一下吧,谢谢了
那既然这两个都差不多,那么第一个里的finally到底有什么作用呢?
但貌似如果发现异常,第一个会执行b2,而第二个则不会执行b2,是这样吗? 展开
2个回答
展开全部
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");
}
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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询