Error del compilador CS0156

Actualización: noviembre 2007

Mensaje de error

No se permite una instrucción throw sin argumentos en una cláusula finally anidada dentro de la cláusula catch más cercana que la engloba
A throw statement with no arguments is not allowed in a finally clause that is nested inside the nearest enclosing catch clause

Una instrucción throw sin parámetros sólo puede aparecer en una cláusula catch que no tome parámetros.

Para obtener más información, vea Instrucciones de control de excepciones y Excepciones y control de excepciones (Guía de programación de C#).

El código siguiente genera el error 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
         }
      }
   }
}