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

Hel*_*ant 43 .net c# exception

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

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

Mar*_*ell 42

.NET没有像java这样的强制("检查")异常.智能感知可能会显示这个信息,如果开发者又增加了一个/// <exception.../>块-但比预期最终更异常可能发生(OutOfMemoryException,ThreadAbortException,TypeLoadException等都能发生相当不可预测).

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

Eric Lippert在这里有一个关于这个主题的好博客.

  • 该文章的链接已损坏,当前工作链接:https://learn.microsoft.com/en-us/archive/blogs/ericlippert/veshing-exceptions (3认同)

res*_*efm 8

我认为Exception猎人可以提供这些信息,但它需要花钱...

  • 这与Exception Hunter无法比较,但是如果你正在寻找一种免费的方法来做到这一点,我写了一个快速的方法来获取这些信息 - https://github.com/stevesheldon/ExceptionReflector.如果它不符合您的需求,请随意分叉/更新. (4认同)
  • 该软件已停产. (2认同)