捕获块日志记录的自定义检查模式
本文关键字:自定义 检查 模式 记录 日志 | 更新日期: 2023-09-27 18:12:45
我刚刚下载了Resharper 7.1的试用版。我的目标是强制执行一个规则,我们的自定义记录器必须在c#代码库中的所有catch块上使用。例子;
try{
// Any amount of code
}
catch(Exception e){
}
应该是非法的,但是:
try{
// Any amount of code
}
catch(Exception e){
Logger.LogException(e.Message, e);
}
完全可以接受。为此,我设置了以下模式来检测和重构。
搜索模式:
try{
$anystatements$
}
catch($exceptiontype$ $exceptionarg$){
$anycatchstatements$
}
替换模式:
try{
$anystatements$
}
catch($exceptiontype$ $exceptionarg$){
Logger.LogException($exceptionarg$.Message, $exceptionarg$)
$anycatchstatements$
}
Resharper可以很好地检测到气味,但是将替换模式本身视为气味,因为添加的日志记录行正在被$anycatchstatement$
占位符匹配。
我如何定义一个占位符来描述"匹配捕获块中任意数量的语句,这些语句不是对自定义记录器的调用,只是附加对记录器的调用"?
不幸的是没有,我使用Resharper 8 EAP (http://confluence.jetbrains.com/display/ReSharper/ReSharper+8+EAP),它仍然没有这样的选项。
显然你应该看看代码契约,或http://www.postsharp.net/或类似的东西。
Vladimir Reshetnikov是对的,他们的团队可以帮助你很多。你可以很容易地通过电子邮件或网络形式与他们联系。他们拥有非常优秀的开发人员,公司允许与客户直接交流。他们来自俄罗斯:)