【发布时间】:2010-11-11 09:38:17
【问题描述】:
想知道如何在其 catch 块中搜索没有 log.Error(ex) 的 try/catch 块。通过搜索,我的意思是使用 Visual Studio 内置的正则表达式搜索。
正则表达式会找到这样的块:
try
{
CallSomeExceptionalFunction();
}
catch(Exception ex)
{
CallSomething();
// missing error handling
}
这个块应该被正则表达式跳过,因为它包含 log.Error:
try
{
CallSomeExceptionalFunction();
}
catch(Exception ex)
{
log.Error(ex);
}
【问题讨论】:
-
您的意思是要使用 Visual Studio 的内置正则表达式搜索?或者您想在分析源代码的 C# 程序中执行此操作?此外,
try或catch块之后是否可以有一对以上的大括号?如果是这样,你不能用正则表达式来做。 -
如前所述,如果你有任意的 catch 块,正则表达式不能真正帮助你。如果您所有的 catch 块与您的示例中的完全一样,则可以完成。但我敢打赌,您只需在所有代码中搜索“catch”短语,然后手动检查您是否使用首选记录器,您将花费更少的时间和精力。
-
Tim Pietzcker:是的,我想使用 Visual Studio 内置的正则表达式搜索
-
Ahmet Kakıcı:不,我不想偷懒,我不想更有效率。
-
这是 VB 语法的优势所在,匹配
End Try/End Function而不是任何旧的}使得正则表达式语句和控制结构更容易。 ;)
标签: c# regex visual-studio exception-handling