Compiler Error CS1626

Cannot yield a value in the body of a try block with a catch clause

A yield statement is not allowed in a try block if there is a catch clause associated with the try block. To avoid this error, move the yield statement out of the catch clause.

The following sample generates 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() { }  
}