没有异常处理的力量?

时间:2010-10-19 20:46:20

标签: c# visual-studio exception-handling

在Eclipse中编写Java,我习惯于处理异常。在使用VisualStudio的C#中,似乎我不能在方法上说“抛出异常”......在经过大量编码之后,我发现了很多异常,并且在测试过程中不得不抓住它们。我想被迫处理它们,以便VisualStudio可以说你需要一个捕获或我不会让你继续:)这可能吗?

由于

4 个答案:

答案 0 :(得分:9)

没有。 C#不会强制您处理异常。这是语言设计者的一个有意义的设计决定。

有关原因的详细信息,请参阅The Trouble With Checked Exceptions,其中Anders Hejlsberg讨论了为什么他们不属于C#。

答案 1 :(得分:2)

在C#中没有检查过的例外。原因很简单:

1)他们往往没有实现预期的目的,因为并非所有人都遵循建议的做法,即明确处理它们或将它们传递给链。相反,发生的事情是开发人员在开发堆栈中间“吃掉”它们 2)因为它们自然是文档而不是可执行代码的一部分,所以它们应该进入文档而不是混乱代码表面

3)开发工具中的C#/ Framework文档是此类文档的理想之选。使用visual studio对象浏览器,浏览到该方法,您将在下部窗格中看到它们。

答案 2 :(得分:0)

不,这是不可能的。

您可以做的是查找您在MSDN中执行的.NET库方法:此处记录了预期由该方法引发的异常。之后,您可以决定要捕获哪些以及您不想在此处理哪些。

答案 3 :(得分:0)

您可以使用various tools查找例外情况。对于.NET 4,还有一个名为Code Contracts的东西可以帮助你强制执行前/后条件,而可能可以避免一些例外。