.NET查找已吃掉的异常

时间:2010-12-05 23:49:42

标签: .net exception exception-handling

我正在使用带有VS2010的.NET 4.0。在我目前的申请中(不是我写的),我发现有很多代码,比如

Try
    ' do something '
Catch e As Exception
    ' do nothing about the exception. no logging and no re-throw... =o=!!! '
End Try

我的问题是如何在整个应用程序中找到这种“吃掉”的异常。

谢谢!

编辑:对不起,我应该说Catch块总是空的。有时可能是Return FalseReturn NothingReturnReturn 0Return "" ......

5 个答案:

答案 0 :(得分:4)

对所涉及的程序集运行FxCop。查找违反rule CA1031的内容。

或者,您可以在源代码中使用此正则表达式:

catch:b*\([^)]*\):b*\{:b*\}

答案 1 :(得分:1)

使用ReSharper(应该可以试用它)。

它会警告您声明但不处理异常的地方。

http://www.jetbrains.com/resharper/

答案 2 :(得分:1)

从Visual Studio转到" Debug" > "例外",然后点击复选框" Thrown" "公共语言运行时异常"。现在,当您将调试器附加到您的应用程序时,即使它们被捕获,它也会停止所有异常。

答案 3 :(得分:0)

正如@RoadWarrier指出的那样,您可以使用FxCop来分析已编译的代码。与FxCop类似,您可以使用StyleCop对源代码进行静态代码分析。如果你有resharper,你可以使用StyleCop for Resharper add in,它会在你输入代码行时进行实时代码分析。

答案 4 :(得分:0)

很好,您有应用程序源,您可以在其中找到被吃掉的异常。我们不得不处理在生产阶段吃异常的dll,我们正在使用使用MDbgCore.dll构建的异常捕获器工具