我在一个相当复杂的开源项目(opensimulator.org)上工作。它目前位于C#的300个KLOC附近,并且有许多地方代码已经建立以捕获和忽略异常,这最终掩盖了微妙的错误。
我想知道哪些工具可以产生过于普遍的异常捕获的报告,以及是否有可用的工具会记录每个抛出的异常,无论是否被抑制,以便稍后进行检查。
如果可以将这些工具引入我们的CI构建中,那将是理想的选择。测试脚本,以便可以进行日常报告,但不是必需的。
答案 0 :(得分:2)
使用FxCop或Visual Studio Team System Developer Edition的代码分析功能。
另外,我发现ReSharper对此非常有用。
答案 1 :(得分:2)
总而言之,我同意@John Saunders但是如果有很多代码,你可以编写一个简单的分析器或使用一些现有代码用日志代码替换所有吞下的异常模式。很简单,比如替换:
catch(Exception ex)
{
}
使用:
catch(Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
注意,你也想检查catch(Exception),可能只是使用一些正则表达式,这根本不会很困难。我知道,因为它是很多代码,您可能想要一种自动获取基本日志记录的方法。用你想要的任何东西替换Debug.WriteLine()。这有点粗糙但很简单。
答案 2 :(得分:0)
Visual Studio内置了read up on how to enable it。