编译器错误 CS0156

更新:2007 年 11 月

错误消息

在嵌套在最近的封闭 catch 子句内部的 finally 子句内不允许使用不带参数的 throw 语句

不带参数的 throw 语句只能出现在不带参数的 catch 子句中。

有关更多信息,请参见异常处理语句异常和异常处理(C# 编程指南)

下面的示例生成 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
         }
      }
   }
}