ArgumentException-Klasse

Die Ausnahme, die ausgelöst wird, wenn eines der Argumente für eine Methode ungültig ist.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class ArgumentException
    Inherits SystemException
    Implements ISerializable
'Usage
Dim instance As ArgumentException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class ArgumentException : SystemException, ISerializable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class ArgumentException : public SystemException, ISerializable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class ArgumentException extends SystemException implements ISerializable
SerializableAttribute 
ComVisibleAttribute(true) 
public class ArgumentException extends SystemException implements ISerializable

Hinweise

ArgumentException wird ausgelöst, wenn eine Methode aufgerufen wird und mindestens eines der übergebenen Argumente nicht der Parameterspezifikation der aufgerufenen Methode entspricht. Allen Instanzen von ArgumentException muss eine aussagekräftige Fehlermeldung zugeordnet sein, in der sowohl das ungültige Argument als auch der erwartete Wertebereich für das Argument beschrieben sind.

Die primären von ArgumentException abgeleiteten Klassen sind ArgumentNullException und ArgumentOutOfRangeException. Diese abgeleiteten Klassen müssen anstelle von ArgumentException verwendet werden. Ausgenommen hiervon sind Situationen, in denen die Verwendung einer abgeleiteten Klasse unzulässig ist. Ausnahmen müssen z. B. in folgenden Situationen ausgelöst werden:

  • ArgumentNullException, wenn NULL (Nothing in Visual Basic) an eine Methode übergeben wird, für die dies kein gültiges Argument ist.

  • ArgumentOutOfRangeException, wenn der Wert eines Arguments nicht im zulässigen Wertebereich liegt; z. B. wenn beim Erstellen von DateTime der Wert 46 als Argument für den Monat übergeben wird.

Wenn die aufgerufene Methode keine Argumente benötigt oder der vorliegende Fehler nicht die Argumente betrifft, wird InvalidOperationException verwendet.

ArgumentException verwendet HRESULT COR_E_ARGUMENT mit dem Wert 0x80070057.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von ArgumentException finden Sie unter ArgumentException-Konstruktoren.

Beispiel

Im folgenden Beispiel wird das Auslösen und Abfangen einer ArgumentException veranschaulicht.

using System;

public sealed class App 
{
    static void Main() 
    {
        // ArgumentException is not thrown because 10 is an even number.
        Console.WriteLine("10 divided by 2 is {0}", DivideByTwo(10));
        try 
        {
             // ArgumentException is thrown because 7 is not an even number.
             Console.WriteLine("7 divided by 2 is {0}", DivideByTwo(7));
        }
        catch (ArgumentException)
        {
            // Show the user that 7 cannot be divided by 2.
            Console.WriteLine("7 is not divided by 2 integrally.");
        }
    }

    static int DivideByTwo(int num) 
    {
        // If num is an odd number, throw an ArgumentException.
        if ((num & 1) == 1)
            throw new ArgumentException("Number must be even", "num");

        // num is even, return half of its value.
        return num / 2;
    }
}


// This code produces the following output.
// 
// 10 divided by 2 is 5
// 7 is not divided by 2 integrally.
using namespace System;

int DivideByTwo(int num)
{
    // If num is an odd number, throw an ArgumentException.
    if ((num & 1) == 1)
    {
        throw gcnew ArgumentException("Number must be even", "num");
    }
    // num is even, return half of its value.
    return num / 2;
}

int main()
{
    // ArgumentException is not thrown because 10 is an even number.
    Console::WriteLine("10 divided by 2 is {0}", DivideByTwo(10));
    try
    {
        // ArgumentException is thrown because 7 is not an even number.
        Console::WriteLine("7 divided by 2 is {0}", DivideByTwo(7));
    }
    catch (ArgumentException^)
    {
        // Show the user that 7 cannot be divided by 2.
        Console::WriteLine("7 is not divided by 2 integrally.");
    }
}

// This code produces the following output.
//
// 10 divided by 2 is 5
// 7 is not divided by 2 integrally.

Vererbungshierarchie

System.Object
   System.Exception
     System.SystemException
      System.ArgumentException
         Abgeleitete Klassen

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

ArgumentException-Member
System-Namespace
Exception

Weitere Ressourcen

Behandeln und Auslösen von Ausnahmen