C# Error
CS1631 – Cannot yield a value in the body of a catch clause
Reason for the Error & Solution
Cannot yield a value in the body of a catch clause
The yield statement is not allowed from within the body of a catch clause. To avoid this error, move the yield statement outside the body of the catch clause.
The following sample generates 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()
{
}
}