返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

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

时间:2010-10-28 17:08来源:知行网www.zhixing123.cn 编辑:麦田守望者

如果有下面一段代码:

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的时候,就会编译报错,告诉你没有这么个标签~~

 

------分隔线----------------------------
标签(Tag):C# C#实例教程 c#基础教程 C#源码
------分隔线----------------------------
推荐内容
猜你感兴趣