在Eclipse中编程Java,我习惯于处理异常。在使用VisualStudio的C#中,似乎我不能说在一个方法上“抛出异常”......经过很多编码之后,我发现了很多异常,并且在测试过程中发现它们时必须抓住它们。我想被迫去处理它们,这样VisualStudio可以说在这里你需要一个catch或者我不会让你继续下去:)这可能吗?没有强制的异常处理?
谢谢
在Eclipse中编程Java,我习惯于处理异常。在使用VisualStudio的C#中,似乎我不能说在一个方法上“抛出异常”......经过很多编码之后,我发现了很多异常,并且在测试过程中发现它们时必须抓住它们。我想被迫去处理它们,这样VisualStudio可以说在这里你需要一个catch或者我不会让你继续下去:)这可能吗?没有强制的异常处理?
谢谢
不需要C#不会强制您处理异常。这是语言设计师的一个明智的设计决定。
有关原因的详细信息,请参见The Trouble With Checked Exceptions,Anders Hejlsberg在其中讨论了为什么它们不属于C#的一部分。
不,这是不可能的。
您可以做的是查找您在MSDN中执行的.NET库方法:预计将由该方法抛出的异常记录在那里。之后,你可以决定你想要捕捉哪些,哪些不想在这里处理。
您可以使用various tools查找例外。 .NET 4也有一个叫做代码合同的东西,它可以帮助你执行前/后条件,并且可以避免一些例外情况。
不,在C#中没有检查异常。而原因很简单:
1)他们往往没有达到预期的有目的的,因为不是每个如下两种处理它们明示或将它们上传链推荐的做法。相反,它们会在开发堆栈中被开发人员“吃掉”。
2),因为它们是文档的自然组成部分,而不是可执行代码,他们应该进入的文件,而不是杂乱的代码表面开发工具
3) C#/框架文件是这样的理想之地文档。使用Visual Studio Object浏览器进行游戏,浏览到该方法,您会在下面的窗格中看到它们。
噢,太糟糕了:)谢谢你的回答! – Johannes 2010-10-19 20:49:50
其中,尽管据称容易出错,但却让程序员可以自由地声明“我知道我在做什么” – 2010-10-19 20:50:10
@Johannes:在你认为这是“不好的”之前,我会阅读那次采访。我曾经认为这是C#中的一个缺陷,但我已经完全转换为将其视为“专业版”... – 2010-10-19 20:50:36