删除 Sonarqube 中的冗余跳转

Remove this redundant jump in Sonarqube

我有一个方法,其中有一个 for 循环。循环看起来类似于下面。

DirectoryInfo d = new DirectoryInfo(somePath);
FileInfo[] Files = d.GetFiles();
foreach (FileInfo file in Files)
{
   try
   {
      DoSomething(file.Name);
   }
   catch (Exception ex)
   {
      continue;
   }
}

我正在做的是,从目录中获取所有文件,运行 循环所有文件,获取文件名并做一些事情。现在我想要的是即使 DoSomething 方法引发异常,我也希望循环继续并且不要在两者之间中断。所以为此我在 catch 块中写了 continue

我正在 运行ning Sonarqube 检查代码质量。它显示消息 "Remove this redundant jump." 。我想知道如何去除这种代码味道并仍然实现我想要的。

作为循环中最后一个语句的continue语句是多余的。你可以这样做:

DirectoryInfo d = new DirectoryInfo(somePath);
FileInfo[] Files = d.GetFiles();
foreach (FileInfo file in Files)
{
    try
    {
        DoSomething(file.Name);
    }
    catch (Exception ex)
    {
        // do nothing
    }
}

此代码与您的完全相同。