InvalidEnumArgumentException クラス

引数として使用した列挙値が無効な場合にスローされる例外。

この型のすべてのメンバの一覧については、InvalidEnumArgumentException メンバ を参照してください。

System.Object
   System.Exception
      System.SystemException
         System.ArgumentException
            System.ComponentModel.InvalidEnumArgumentException

Public Class InvalidEnumArgumentException
   Inherits ArgumentException
[C#]
public class InvalidEnumArgumentException : ArgumentException
[C++]
public __gc class InvalidEnumArgumentException : public
   ArgumentException
[JScript]
public class InvalidEnumArgumentException extends ArgumentException

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

この例外は、無効な列挙値をメソッドに渡した場合や、プロパティの設定時にスローされます。

使用例

[Visual Basic, C#, C++] InvalidEnumArgumentException 例外をキャッチし、その内容を解釈する方法を次の例に示します。この例では、 MessageBox.Show メソッドの 3 番目の引数として、キャストを使用して無効な列挙値 (MessageBoxButtons) を渡します。例外をキャッチしたときに、この例はそれぞれのエラー メッセージ、無効なパラメータ、スタック トレース、および例外の発生源をフェッチします。

 
Try
    ' Attempts to pass an invalid enum value (MessageBoxButtons) to the Show method
    Dim myButton As MessageBoxButtons
    myButton = CType(123, MessageBoxButtons)
    MessageBox.Show("This is a message", "This is the Caption", myButton)
Catch invE As System.ComponentModel.InvalidEnumArgumentException
    Console.WriteLine(invE.Message)
    Console.WriteLine(invE.ParamName)
    Console.WriteLine(invE.StackTrace)
    Console.WriteLine(invE.Source)
End Try

[C#] 
try 
{
// Attempts to pass an invalid enum value (MessageBoxButtons) to the Show method
    MessageBoxButtons myButton= (MessageBoxButtons) 123;
    MessageBox.Show("This is a message","This is the Caption",myButton);
}
catch(InvalidEnumArgumentException invE) 
{
    Console.WriteLine(invE.Message);
    Console.WriteLine(invE.ParamName);
    Console.WriteLine(invE.StackTrace);
    Console.WriteLine(invE.Source);
}

[C++] 
try 
{
//Attempting to pass an invalid enum value (MessageBoxButtons) to the Show method
MessageBoxButtons myButton = (MessageBoxButtons) 123;    // to fix use System::Windows::Forms::DialogResult::OK;
MessageBox::Show(this, "This is a message","This is the Caption", myButton);
}
catch(InvalidEnumArgumentException* invE) 
{
    Console::WriteLine(invE->Message);
    Console::WriteLine(invE->ParamName);
    Console::WriteLine(invE->StackTrace);
    Console::WriteLine(invE->Source);
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.ComponentModel

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System (System.dll 内)

参照

InvalidEnumArgumentException メンバ | System.ComponentModel 名前空間