现在的位置: 首页 > 综合 > 正文

C#:能在catch块中使用goto跳回try块么?

2013年07月25日 ⁄ 综合 ⁄ 共 373字 ⁄ 字号 评论关闭
 

如果有下面一段代码:

   try
   {
   TryTag: throw new Exception("new exception");
   }
   catch(Exception ex)
   {
    goto TryTag;
   }

     大家猜猜会是什么结果?是进入一个死循环?还是C#不允许从catch转回try?抑或其他?开动脑筋~~

     OK,time to publish the answer~答案是:根本就编译通不过!

      嘿嘿,为什么嘞?C#做了限制,不允许catch转回try?表面上看起来是,但内幕其实是这样的:在try中我们加了一个标签TryTag,用来作goto的指向标,但是,TryTag也是有生存空间的,它的生存空间仅限于try块中……所以,在catch块中用goto TryTag的时候,就会编译报错,告诉你没有这么个标签~~

抱歉!评论已关闭.