C# Error
CS1626 – Cannot yield a value in the body of a try block with a catch clause
Reason for the Error & Solution
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, either move the yield statement out of the try/catch/finally block, or remove the catch block.
The following sample generates CS1626:
// CS1626.cs
using System.Collections;
class C : IEnumerable
{
public IEnumerator GetEnumerator()
{
try
{
yield return this; // CS1626
}
catch
{
}
finally
{
}
}
}
public class CMain
{
public static void Main() { }
}