我正在处理一个包含大量旧代码的大型代码库:
try
{
...
}
catch
{
throw;
}
Resharper帮助标记了这些并提供了“删除冗余捕获”的选项,但我不想一个接一个地浏览,我想立刻将它们全部清除掉。有没有办法用Resharper做到这一点,可能通过将其与“代码清理”集成在一起?
答案 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>
该模式适用于我的测试代码。我不知道模式匹配引擎如何处理空格,因此您可能需要将标签更改为空格或适当的代码标准。