CS0156 de erro do compilador

Mensagem de erro

demonstrativo throw sem argumentos não é permitida em um finalmente cláusula que está aninhada dentro do delimitador mais próximo catch cláusula

A throw demonstrativo sem parâmetros só pode aparecer em um catch cláusula sem parâmetros.

Para obter mais informações, consulte Instruções de manipulação de exceção and Exceções e manipulação de exceção (guia de programação C#).

O exemplo a seguir gera 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
         }
      }
   }
}