找出方法可能在C#中抛出的异常

时间:2008-11-05 10:07:09

标签: c# .net exception

有没有办法找出.NET代码中的任何方法可能引发的异常?理想情况下,我想看看可能会抛出什么,并选择我想要处理的是什么。我想我想要从java中的throws子句获得的信息。

情况是我正在对来自网络的xml文档进行linq查询,并想知道可能出现的问题。我可以在反射器中打开组件并看一看,但我认为可能有一种更简单的方法。

4 个答案:

答案 0 :(得分:42)

.NET没有像java这样的强制(“已检查”)异常。如果开发人员添加了/// <exception.../>块,则intellisense 可能会显示此信息 - 但最终会发生比预期更多的异常(OutOfMemoryExceptionThreadAbortException,{ {1}}等等都可能无法预测地发生。)

一般来说,你应该知道哪些事情可能出错,哪些事实你可以做些有用的事情。在大多数情况下,正确的行为是让异常冒泡(只运行任何“最终”代码来释放资源)。

Eric Lippert在这个主题上有一个很好的博客here

答案 1 :(得分:8)

我认为Exception hunter可以提供此信息,但需要花钱......

答案 2 :(得分:1)

在StackOverflow上阅读另一篇关于此内容的文章之后,我在编写工具的其他答案的基础上构建了这个,你可以在这里从GitHub获取源代码:

Exception Reflector

你还可以在这里阅读更多内容:

http://steves-rv-travels.com/archives/167

答案 3 :(得分:0)

只要您使用BCL类,它们都是完整的文档,因此Intellisense会显示方法可以抛出的任何异常。除此之外(和阅读文档),我认为没有办法。