다음을 통해 공유


InvalidEnumArgumentException 클래스

잘못된 인수를 열거자로 사용하면 예외가 throw됩니다.

네임스페이스: System.ComponentModel
어셈블리: System(system.dll)

구문

‘선언
<SerializableAttribute> _
Public Class InvalidEnumArgumentException
    Inherits ArgumentException
‘사용 방법
Dim instance As InvalidEnumArgumentException
[SerializableAttribute] 
public class InvalidEnumArgumentException : ArgumentException
[SerializableAttribute] 
public ref class InvalidEnumArgumentException : public ArgumentException
/** @attribute SerializableAttribute() */ 
public class InvalidEnumArgumentException extends ArgumentException
SerializableAttribute 
public class InvalidEnumArgumentException extends ArgumentException

설명

이 예외는 메서드에 잘못된 열거형 값을 전달하거나 속성을 설정하는 경우 throw됩니다.

참고

이 클래스에 적용되는 HostProtectionAttribute 특성의 Resources 속성 값은 SharedState입니다. HostProtectionAttribute는 대개 아이콘을 두 번 클릭하거나, 명령을 입력하거나, 브라우저에서 URL을 입력하여 시작되는 데스크톱 응용 프로그램에 영향을 미치지 않습니다. 자세한 내용은 HostProtectionAttribute 클래스나 SQL Server 프로그래밍 및 호스트 보호 특성을 참조하십시오.

예제

다음 코드 예제에서는 InvalidEnumArgumentException 예외를 catch하고 해당 콘텐츠를 해석하는 방법을 보여 줍니다. 이 예제에서는 잘못된 열거형 값(MessageBoxButtons)을 캐스팅을 통해 MessageBox.Show 메서드의 세 번째 인수로 전달하려고 합니다. 또한 예외를 catch할 때 관련 오류 메시지, 잘못된 매개 변수, 스택 추적 및 예외의 원인을 페치(fetch)합니다.

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
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);
}
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 );
}
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.get_Message());
    Console.WriteLine(invE.get_ParamName());
    Console.WriteLine(invE.get_StackTrace());
    Console.WriteLine(invE.get_Source());
}

상속 계층 구조

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

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

InvalidEnumArgumentException 멤버
System.ComponentModel 네임스페이스