编译器错误 CS0156
无参数的 throw 语句不允许在 catch 子句之外使用
不带参数的 throw 语句只能出现在不带任何参数的 catch 子句中。
有关详细信息,请参阅异常和异常处理。
下面的示例生成 CS0156:
C#
// 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
}
}
}
}