gpt4 book ai didi

c# - catch block 日志记录的自定义检查模式

转载 作者:太空狗 更新时间:2023-10-29 17:59:29 25 4
gpt4 key购买 nike

我刚刚下载了 Resharper 7.1 的试用版。我的目标是强制执行一条规则,我们的自定义记录器必须用于我们的 c# 代码库中的所有 catch block 。示例;

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$ 占位符匹配。

我如何定义一个占位符来描述“匹配 catch block 中的任意数量的语句,这些语句不是对自定义记录器的调用,并且只需将调用附加到记录器”?

最佳答案

不幸的是,不,我正在使用 Resharper 8 EAP ( http://confluence.jetbrains.com/display/ReSharper/ReSharper+8+EAP ),它仍然没有这样的选项。

可以证明,您应该查看代码契约(Contract),或 http://www.postsharp.net/或类似的东西。

此外,Vladimir Reshetnikov 是对的 - 他们的团队可以为您提供很多帮助。您可以通过电子邮件或网络表格轻松地与他们联系。他们拥有非常优秀的开发人员,并且公司允许与客户直接沟通。他们来自俄罗斯:)

关于c# - catch block 日志记录的自定义检查模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com