【问题标题】:C#: Does Visual Studio 2008 have a tool to show which Exceptions could be raised by a piece of code?C#:Visual Studio 2008 是否有一个工具来显示一段代码可能引发哪些异常?
【发布时间】:2010-02-10 23:17:12
【问题描述】:

例如,如果我正在打开一个文件,我知道可能会发生 FileNotFoundException,或者如果我将 String 转换为 double,则可能会发生 FormatException。显然,如果一个方法两者都做,两者都可以提高。

有没有办法快速查看方法引发的所有可能的异常?自己跟踪它似乎容易出错。

【问题讨论】:

标签: c# visual-studio exception-handling


【解决方案1】:

它没有内置在 VS 中。不过也有第 3 方工具,例如 Redgate's 异常猎人。

编辑我没有受雇于 RG,但我是他们产品的粉丝。我试过这个特别的,但我们最终没有买它。

【讨论】:

  • 看起来是一个很有前途的工具。为什么最后不买了?
  • 记不清了……我们需要探查器统计数据,而且我认为预算可能很紧张……
  • Redgate 的异常猎手已经停止。
【解决方案2】:

如果 intellisense 工具提示应该有一个方法可以抛出的异常列表,如果我没有记错的话。您还可以在 Visual Studio 中打开指向 MSDN 的浏览器选项卡,如下所示:http://msdn.microsoft.com/en-us/library/b9skfh7s.aspx#ddueExceptionsToggle

【讨论】:

【解决方案3】:

Agent Johnson pklugin 到 ReSharper

【讨论】:

    【解决方案4】:

    如果我没有记错的话,我认为 Resharper 会做到这一点。看看Pex,你可能也会感兴趣。

    【讨论】:

    • 我自己(普通用户)在 Resharper 中没有遇到过这个功能,但如果有的话,我很想知道。
    【解决方案5】:

    没有具体的方法可以找到一段代码的所有异常,除非你有办法在你正在执行的任何代码段中运行每个可能的分支。虽然工具可能能够评估可能发生的错误,但您仍然会遇到这些工具无法捕获的情况。虽然我并不是说没有理由运行它们,但您仍然必须编写代码来处理您的工具可能无法捕获的错误。我见过这样的工具代替了良好的测试和编码实践。

    有时例外也是好事。我发现的一些最严重和影响最大的错误是由于开发人员以这样一种方式处理错误,即程序继续但不再处于任何未来调用代码所期望的状态。只是我的 .02

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多