如何使用Resharper对“删除冗余捕获”进行项目范围扫描?

时间:2010-04-28 20:55:38

标签: resharper

我正在处理一个包含大量旧代码的大型代码库:

try
{
    ...
}
catch
{
    throw;
}

Resharper帮助标记了这些并提供了“删除冗余捕获”的选项,但我不想一个接一个地浏览,我想立刻将它们全部清除掉。有没有办法用Resharper做到这一点,可能通过将其与“代码清理”集成在一起?

1 个答案:

答案 0 :(得分:5)

如果您使用的是Resharper 5.0,则可以将以下模式(将其保存为xml文件)导入模式目录(Resharper>工具>模式目录>导入),然后运行“立即搜索”以查找所有实例,以便您可以查看并选择对它们进行替换。

<CustomPatterns>
  <Pattern Severity="HINT">
    <Comment>useless catch</Comment>
    <ReplaceComment>remove useless catch</ReplaceComment>
    <ReplacePattern>$code$</ReplacePattern>
    <SearchPattern><![CDATA[try
{
    $code$
}
catch
{
    throw;
}]]></SearchPattern>
    <Params />
    <Placeholders>
      <StatementPlaceholder Name="code" Minimal="1" Maximal="-1" />
    </Placeholders>
  </Pattern>
</CustomPatterns>

该模式适用于我的测试代码。我不知道模式匹配引擎如何处理空格,因此您可能需要将标签更改为空格或适当的代码标准。