ArgumentException Klasse

Definition

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

public ref class ArgumentException : Exception
public ref class ArgumentException : SystemException
public class ArgumentException : Exception
public class ArgumentException : SystemException
[System.Serializable]
public class ArgumentException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentException : SystemException
type ArgumentException = class
    inherit Exception
type ArgumentException = class
    inherit SystemException
type ArgumentException = class
    inherit SystemException
    interface ISerializable
[<System.Serializable>]
type ArgumentException = class
    inherit SystemException
    interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArgumentException = class
    inherit SystemException
    interface ISerializable
Public Class ArgumentException
Inherits Exception
Public Class ArgumentException
Inherits SystemException
Vererbung
ArgumentException
Vererbung
ArgumentException
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie ein ausgelöst und fangen wird ArgumentException. Es verwendet argumentException.GetType(). Name-Eigenschaft , um den Namen des Ausnahmeobjekts anzuzeigen, und verwendet auch die Message -Eigenschaft, um den Text der Ausnahmemeldung anzuzeigen.

using namespace System;

static int DivideByTwo(int num) 
{
    // If num is an odd number, throw an ArgumentException.
    if ((num & 1) == 1)
        throw gcnew ArgumentException(String::Format("{0} is not an even number", num), 
                                      "num");

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

void main() 
{
    // Define some integers for a division operation.
    array<int>^ values = { 10, 7 };
    for each (int value in values) {
        try {
           Console::WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value));
        }
        catch (ArgumentException^ e) {
           Console::WriteLine("{0}: {1}", e->GetType()->Name, e->Message);
        }
        Console::WriteLine();
    }
}
// This example displays the following output:
//     10 divided by 2 is 5
//     
//     ArgumentException: 7 is not an even number
//     Parameter name: num
using System;

public class Example
{
    static void Main()
    {
        // Define some integers for a division operation.
        int[] values = { 10, 7 };
        foreach (var value in values) {
            try {
               Console.WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value));
            }
            catch (ArgumentException e) {
               Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message);
            }
            Console.WriteLine();
        }
    }

    static int DivideByTwo(int num)
    {
        // If num is an odd number, throw an ArgumentException.
        if ((num & 1) == 1)
            throw new ArgumentException(String.Format("{0} is not an even number", num),
                                      "num");

        // num is even, return half of its value.
        return num / 2;
    }
}
// This example displays the following output:
//     10 divided by 2 is 5
//
//     ArgumentException: 7 is not an even number
//     Parameter name: num
open System

let divideByTwo num =
    // If num is an odd number, throw an ArgumentException.
    if num % 2 = 1 then
        invalidArg "num" $"{num} is not an even number"

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

// Define some integers for a division operation.
let values = [ 10; 7 ]
for value in values do
    try 
        printfn $"{value} divided by 2 is {divideByTwo value}"
    with
    | :? ArgumentException as e ->
        printfn $"{e.GetType().Name}: {e.Message}"
    
    printfn ""

// This example displays the following output:
//     10 divided by 2 is 5
//
//     ArgumentException: 7 is not an even number (Parameter 'num')
Public Class Example
    Public Shared Sub Main()
        ' Define some integers for a division operation.
        Dim values() As Integer = { 10, 7 }

        For Each value In values
            Try 
               Console.WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value))
            Catch e As ArgumentException
               Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message)
            End Try
            Console.WriteLine()
        Next
    End Sub
    
    Private Shared Function DivideByTwo(ByVal num As Integer) As Integer
        ' If num is an odd number, throw an ArgumentException.
        If (num And 1) = 1 Then
            Throw New ArgumentException(String.Format("{0} is not an even number", num), 
                                      "num")
        End If
        Return num \ 2
    End Function
End Class
' The example displays the following output:
'     10 divided by 2 is 5
'     
'     ArgumentException: 7 is not an even number
'     Parameter name: num

Hinweise

ArgumentException wird ausgelöst, wenn eine Methode aufgerufen wird und mindestens eines der übergebenen Argumente die Parameterspezifikation der aufgerufenen Methode nicht erfüllt. Die ParamName -Eigenschaft identifiziert das ungültige Argument.

Am häufigsten wird ein ArgumentException von der Common Language Runtime oder einer anderen Klassenbibliothek ausgelöst und gibt einen Entwicklerfehler an. Wenn Sie einen ArgumentException aus Ihrem Code auslösen, sollten Sie sicherstellen, dass die Eigenschaft der Ausnahme Message eine aussagekräftige Fehlermeldung enthält, die das ungültige Argument und den erwarteten Wertebereich für das Argument beschreibt.

Die primären abgeleiteten Klassen von ArgumentException sind ArgumentNullException und ArgumentOutOfRangeException. Diese abgeleiteten Klassen sollten anstelle von ArgumentExceptionverwendet werden, außer in Situationen, in denen keine der abgeleiteten Klassen akzeptabel ist. Ausnahmen sollten beispielsweise ausgelöst werden durch:

  • ArgumentNullException wenn null an eine Methode übergeben wird, die sie nicht als gültiges Argument akzeptiert.

  • ArgumentOutOfRangeException , wenn der Wert eines Arguments außerhalb des Bereichs zulässiger Werte liegt; beispielsweise, wenn der Wert "46" während der Erstellung eines DateTimeals Monatsargument übergeben wird.

Wenn der Methodenaufruf über kein Argument verfügt oder wenn der Fehler nicht die Argumente selbst umfasst, sollte verwendet InvalidOperationException werden.

ArgumentException verwendet die HRESULT-COR_E_ARGUMENT, die den Wert 0x80070057 hat.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von ArgumentException, finden Sie unter den ArgumentException Konstruktoren.

In F# können Sie die invalidArg-Funktion verwenden, um eine ArgumentException zu generieren und auszulösen.

Konstruktoren

ArgumentException()

Initialisiert eine neue Instanz der ArgumentException-Klasse.

ArgumentException(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der ArgumentException-Klasse mit serialisierten Daten.

ArgumentException(String)

Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung.

ArgumentException(String, Exception)

Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.

ArgumentException(String, String)

Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung und dem Namen des Parameters, der die Ausnahme auslöst.

ArgumentException(String, String, Exception)

Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung, dem Parameternamen und einem Verweis auf die innere Ausnahme, die diese Ausnahme verursacht hat.

Eigenschaften

Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.

(Geerbt von Exception)
HResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.

(Geerbt von Exception)
InnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft die Fehlermeldung und den Parameternamen oder nur die Fehlermeldung ab, wenn kein Parametername festgelegt ist.

ParamName

Ruft den Namen des Parameters ab, der diese Ausnahme auslöst.

Source

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist.

(Geerbt von Exception)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Legt das SerializationInfo-Objekt mit dem Parameternamen und zusätzlichen Informationen zur Ausnahme fest.

GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ThrowIfNullOrEmpty(String, String)

Löst eine Ausnahme aus, wenn argument leer ist null oder ist.

ThrowIfNullOrWhiteSpace(String, String)

Löst eine Ausnahme aus, wenn argument leer ist nulloder nur aus Leerzeichen besteht.

ToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.

(Geerbt von Exception)

Ereignisse

SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.

(Geerbt von Exception)

Gilt für:

Weitere Informationen