抛出新的System.NotImplementedException()之后无法访问的代码;

时间:2013-02-15 07:48:01

标签: c# gtk warnings

我有一个愚蠢的问题我是gtksharp中的超级菜鸟monodevelp和我创建按钮时单击它将清除条目文本但monodevelop生成单击按钮功能:

throw new System.NotImplementedException ();

然后我写下这段代码:

entry1.Text = "";

当我建立它时,我收到了这个警告:

 Warning CS0162: Unreachable code detected (CS0162) 

那么代码是什么意思,没有这个例外,我想了解警告的意思 如果有人给我一些基本书籍或文档的链接来学习如何处理gtk#组件,那真的会有所帮助,谢谢你们。

6 个答案:

答案 0 :(得分:2)

当你抛出异常程序停止并且后面的代码永远不会执行时,删除行:

throw new System.NotImplementedException ();

System.Exception类的注释为您提供了很多关于异常抛出和处理如何在.NET中工作的基本信息。

答案 1 :(得分:1)

您需要删除行throw new System.NotImplementedException ();,因为您已通过将文本设置为空字符串提供了一些实现。

您收到警告的原因:Unreachable code detected (CS0162)是因为您在第一行中抛出异常,然后将text属性设置为空字符串,这将永远不会被激活。就System.NotImplementedException而言,它是

  

请求的方法或操作时引发的异常   没有实施。

答案 2 :(得分:1)

正在抛出exception(即错误)。发生这种情况时,函数返回并查找堆栈以获取异常处理程序(try / catch)。如果找到一个,则处理异常并消失。如果没有处理,程序可能必须退出。

在这种情况下,throw new System.NotImplementedException ();实际上意味着创建并发送名为System.NotImplementedException() 的错误。抛出此异常时,函数返回。所以,它之后什么都不会被调用。这是您的错误来源。

答案 3 :(得分:0)

从您的方法中删除此字符串:

throw new System.NotImplementedException ();

答案 4 :(得分:0)

这一行

throw new System.NotImplementedException ();

是自动生成的。它告诉开发人员您必须使用实际代码填充方法,而不是使用自动生成的代码块。 只需删除它并实现您的方法。

答案 5 :(得分:0)

检测到无法访问的代码意味着您的部分代码不会被执行。

由于您抛出异常,控件将在调用堆栈上向下传播到可以处理异常的级别。