ArgumentException Osztály

Definíció

Az a kivétel, amely akkor fordul elő, ha a metódushoz megadott argumentumok egyike érvénytelen.

public ref class ArgumentException : Exception
public ref class ArgumentException : SystemException
public class ArgumentException : Exception
[System.Serializable]
public class ArgumentException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentException : SystemException
public class ArgumentException : SystemException
type ArgumentException = class
    inherit Exception
[<System.Serializable>]
type ArgumentException = class
    inherit SystemException
    interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArgumentException = class
    inherit SystemException
    interface ISerializable
type ArgumentException = class
    inherit SystemException
    interface ISerializable
type ArgumentException = class
    inherit SystemException
Public Class ArgumentException
Inherits Exception
Public Class ArgumentException
Inherits SystemException
Öröklődés
ArgumentException
Öröklődés
ArgumentException
Származtatott
Attribútumok
Megvalósítás

Példák

Az alábbi példa bemutatja, hogyan lehet dobni és elkapni egy ArgumentException. Az ArgumentumException.GetType() függvényt használja. A Név tulajdonság a kivételobjektum nevének megjelenítéséhez, valamint a Message tulajdonság használatával jeleníti meg a kivételüzenet szövegét.

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

Megjegyzések

ArgumentException metódus meghívásakor a megadott argumentumok közül legalább egy nem felel meg a hívott metódus paraméterspecifikációjának. A ParamName tulajdonság azonosítja az érvénytelen argumentumot.

A leggyakrabban a ArgumentException közös nyelvi futtatókörnyezet vagy egy másik osztálytár dob egy hibát, és fejlesztői hibát jelez. Ha a kódból dob ki egy ArgumentException üzenetet, győződjön meg arról, hogy a kivétel tulajdonsága Message tartalmaz egy értelmes hibaüzenetet, amely leírja az érvénytelen argumentumot és az argumentum várható értéktartományát.

Az elsődleges származtatott osztályok a ArgumentException következők ArgumentNullException és ArgumentOutOfRangeException. Ezek helyett ezeket a származtatott osztályokat kell használni ArgumentException, kivéve azokat az eseteket, amikor egyik származtatott osztály sem elfogadható. A kivételeket például a következő esetekben kell megadni:

  • ArgumentNullException amikor null olyan metódusnak ad át, amely nem fogadja el érvényes argumentumként.

  • ArgumentOutOfRangeException ha egy argumentum értéke kívül esik az elfogadható értékek tartományán; ha például a "46" értéket a rendszer a hónap argumentumaként adja át egy DateTime.

Ha a metódushívás nem tartalmaz argumentumot, vagy ha a hiba nem magában foglalja az argumentumokat, akkor InvalidOperationException azt kell használni.

ArgumentException A HRESULT COR_E_ARGUMENT használja, amelynek értéke 0x80070057.

A ArgumentException példány kezdeti tulajdonságainak listájáért tekintse meg a ArgumentException konstruktorokat.

Az F#-ban az invalidArg függvénnyel argumentumexceptionet hozhat létre és emelhet ki.

Konstruktorok

Name Description
ArgumentException()

Inicializálja a ArgumentException osztály új példányát.

ArgumentException(SerializationInfo, StreamingContext)

Inicializálja az ArgumentException osztály új példányát szerializált adatokkal.

ArgumentException(String, Exception)

Inicializálja az ArgumentException osztály új példányát egy megadott hibaüzenettel és a kivétel okaként szolgáló belső kivételre mutató hivatkozással.

ArgumentException(String, String, Exception)

Inicializálja az ArgumentException osztály új példányát egy megadott hibaüzenettel, a paraméter nevével és a kivétel okaként szolgáló belső kivételre mutató hivatkozással.

ArgumentException(String, String)

Inicializálja az ArgumentException osztály új példányát egy megadott hibaüzenettel és a kivételt okozó paraméter nevével.

ArgumentException(String)

Inicializálja az ArgumentException osztály új példányát egy megadott hibaüzenettel.

Tulajdonságok

Name Description
Data

Lekéri a kulcs-/érték párok gyűjteményét, amelyek további, felhasználó által definiált információkat biztosítanak a kivételről.

(Öröklődés forrása Exception)
HelpLink

Lekéri vagy beállítja a kivételhez társított súgófájlra mutató hivatkozást.

(Öröklődés forrása Exception)
HResult

Lekéri vagy beállítja a HRESULT-ot, egy kódolt numerikus értéket, amely egy adott kivételhez van hozzárendelve.

(Öröklődés forrása Exception)
InnerException

Lekéri az Exception aktuális kivételt okozó példányt.

(Öröklődés forrása Exception)
Message

Lekéri a hibaüzenetet és a paraméter nevét, vagy csak a hibaüzenetet, ha nincs megadva paraméternév.

ParamName

Lekéri a kivételt okozó paraméter nevét.

Source

Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét.

(Öröklődés forrása Exception)
StackTrace

Lekéri a hívásverem közvetlen kereteinek sztringképét.

(Öröklődés forrása Exception)
TargetSite

Lekéri az aktuális kivételt okozó metódust.

(Öröklődés forrása Exception)

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetBaseException()

Ha egy származtatott osztály felül van bírálva, egy Exception vagy több későbbi kivétel kiváltó okát adja vissza.

(Öröklődés forrása Exception)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetObjectData(SerializationInfo, StreamingContext)

Beállítja az SerializationInfo objektumot a paraméter nevével és a további kivételadatokkal.

GetType()

Lekéri az aktuális példány futtatókörnyezeti típusát.

(Öröklődés forrása Exception)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Létrehozza és visszaadja az aktuális kivétel sztring-ábrázolását.

(Öröklődés forrása Exception)

esemény

Name Description
SerializeObjectState

Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről.

(Öröklődés forrása Exception)

A következőre érvényes:

Lásd még