CS1631 de erro do compilador

Mensagem de erro

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

A demonstrativo yield não é permitida de dentro do corpo de uma cláusula catch.Para evitar esse erro, mova a demonstrativo yield fora do corpo da cláusula catch.

O exemplo a seguir gera CS1631:

// CS1631.cs
using System;
using System.Collections;

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

   public static void Main() 
   {
   }
}