Error del compilador CS1631

Actualización: noviembre 2007

Mensaje de error

No se puede proporcionar ningún valor en el texto de una cláusula catch
Cannot yield a value in the body of a catch clause

No se permite la instrucción yield en el cuerpo de una cláusula catch. Para evitar este error, mueva la instrucción yield fuera del cuerpo de la cláusula catch.

En el código siguiente se genera el error 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() 
   {
   }
}