Compiler Error CS0156
A throw statement with no arguments is not allowed in a finally clause that is nested inside the nearest enclosing catch clause
A throw statement with no parameters can only appear in a catch clause that takes no parameters.
For more information, see Exception Handling Statements and Exceptions and Exception Handling (C# Programming Guide).
The following sample generates CS0156:
// CS0156.cs
using System;
namespace MyNamespace
{
public class MyClass2 : Exception
{
}
public class MyClass
{
public static void Main()
{
try
{
throw; // CS0156
}
catch(MyClass2)
{
throw; // this throw is valid
}
}
}
}