我已经实现了几个“股票”微软代码分析规则。然而,他们缺乏一个领域,即他们没有在捕获中检测到是否实施了日志记录。
所以我的测试项目有这两种方法。我希望看到其中一个引发我的自定义错误,而另一个通过。
public void CatchTestNoLogging()
{
try
{ string A = "adsf"; }
catch (Exception ex)
{ throw; }
}
public void CatchTestLogging()
{
try
{ string A = "adsf"; }
catch (Exception ex)
{
log.Error("Test Error");
throw;
}
}
我的自定义规则能够检测是否有问题,但我看不到如何检测是否使用了日志记录?
这是自定义规则的 SNIP:
if (iList[i].OpCode == OpCode._Catch)
{
isCatchExists = true; //this gets hit as I want
//so the question is what can I do to detect if logging is implemented in the catch?
}
只是一个关于我如何访问的快速指针会很棒。谢谢你