A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘沛霞 中级黑马   /  2013-5-4 16:12  /  1559 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘沛霞 于 2013-5-5 11:04 编辑

{:soso_e134:}try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 写代码测试

查看全部评分

5 个回复

倒序浏览
  1. public class FieldAccess {
  2. public static void main(String[]args){
  3.         try{
  4.                 System.out.println("验证return执行顺序");
  5.                 return;
  6.         }
  7.         finally{
  8.                 System.out.print("如果出现,证明在return返回前执行");
  9.         }
  10. }
复制代码
结果:
验证return顺序
如果出现,证明在return返回前执行;
可以证明是在执行finally后执行return;
楼主可以先试试;

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 继续加油

查看全部评分

回复 使用道具 举报
try...catch语句的一般形式为:
try{
  语句块//执行该语句块,可能会发生异常
   }catch(异常类型e){
    异常发生时要执行的语句块
}finally {
    无论异常发生与否,都要执行的语句块
}
注意:1。在try...catch语句中,catch和finally必须与一个try相关联。
2。同样try也必须至少要有一个catch
3。finally语句块的作用是:当发生异常时,在执行语句块之前,必须做一些清理的工作,这样的工作可以放在finally语句块中。
4。finally语句块是可选的,它只是提供一种机制,无论try语句块是否发生异常,都要保证清理工作能完成。
5。当try标识的语句块发生多种类型的异常,一个try会有多个catch和它标识的语句块,这种情况,异常发生时要执行的语句块可以为空,但一对花括号{}不能省略。
回复 使用道具 举报
如果问题解决请再次编辑,修改为已解决,若还有疑问,请继续追问
回复 使用道具 举报
海不扬波 发表于 2013-5-4 16:43
try...catch语句的一般形式为:
try{
  语句块//执行该语句块,可能会发生异常

很想给你加分,可是你文不对题,不过能分享知识的心态是好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马