CS1626 de erro do compilador

Mensagem de erro

Não é possível usar a instrução yield no corpo de um bloco try com uma cláusula catch

Uma demonstrativo yield não é permitida em um bloco try, se houver uma cláusula catch associada com o bloco try.Para evitar esse erro, mova a demonstrativo yield fora da cláusula catch.

O exemplo a seguir gera CS1626:

// CS1626.cs
using System.Collections;

class C : IEnumerable
{
   public IEnumerator GetEnumerator()
   {
      try
      {
         yield return this;  // CS1626
      }
      catch
      {
        
      }
   }
}

public class CMain
{
   public static void Main() { }
}