更新 : 2007 年 11 月
エラー メッセージ
引数のない throw ステートメントは、すぐ外側にある catch 句の中に入れ子にされた finally 句の中で使用することはできません。
パラメータがない 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
}
}
}
}