有没有办法找出.NET代码中任何方法可能引发的异常?理想情况下,我想看到可能抛出的异常并选择我想要处理哪些。我猜我想要Java中throws子句提供的信息。
现在的情况是,我正在对来自网络的XML文档进行Linq查询,并希望知道可能会发生什么问题。我可以打开反编译工具Reflector查看,但我认为可能还有更简单的方法。
.NET没有像Java那样强制实施(“checked”)异常。如果开发人员添加了///<exception.../>
块,则智能感知可能会显示此信息,但是最终可能会发生比您预期更多的异常(例如OutOfMemoryException
、ThreadAbortException
、TypeLoadException
等),而且发生的时间也很难预测。
通常情况下,您应该有一个关于哪些事情可能出错以及哪些错误可以实际处理的想法。在大多数情况下,正确的行为是让异常上升到调用堆栈(只运行任何“finally”代码以释放资源)。
Eric Lippert在这里对此问题进行了良好的博客介绍。
我认为异常猎手可以提供这些信息,但需要付费...
在 StackOverflow 上阅读了另一篇关于这个问题的文章后,我在那篇答案的基础上构建了一个工具来解决这个问题。你可以从这里的 GitHub 获取源代码:
你还可以在这里阅读更多信息: