ArgumentException Classe

Définition

Exception levée quand un argument non valide est fourni à une méthode.

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
Héritage
ArgumentException
Héritage
ArgumentException
Dérivé
Attributs
Implémente

Exemples

L’exemple suivant montre comment lever et intercepter un ArgumentException. Il utilise ArgumentException.GetType(). Propriété Name pour afficher le nom de l’objet exception et utilise également la Message propriété pour afficher le texte du message d’exception.

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

Remarques

ArgumentException est levée lorsqu’une méthode est appelée et qu’au moins un des arguments passés ne répond pas à la spécification de paramètre de la méthode appelée. La ParamName propriété identifie l’argument non valide.

Le plus souvent, une ArgumentException exception est levée par le Common Language Runtime ou une autre bibliothèque de classes et indique une erreur de développeur. Si vous lèvez un ArgumentException code, vous devez vous assurer que la propriété de Message l’exception inclut un message d’erreur explicite qui décrit l’argument non valide et la plage de valeurs attendue pour l’argument.

Les classes dérivées primaires de ArgumentException are ArgumentNullException et ArgumentOutOfRangeException. Ces classes dérivées doivent être utilisées au lieu de ArgumentException, sauf dans les situations où aucune des classes dérivées n’est acceptable. Par exemple, les exceptions doivent être levées par :

  • ArgumentNullException chaque fois qu’elle null est passée à une méthode qui ne l’accepte pas comme argument valide.

  • ArgumentOutOfRangeException lorsque la valeur d’un argument est en dehors de la plage de valeurs acceptables ; par exemple, lorsque la valeur « 46 » est passée en tant qu’argument mois lors de la création d’un DateTime.

Si l’appel de méthode n’a pas d’argument ou si l’échec n’implique pas les arguments eux-mêmes, il InvalidOperationException doit être utilisé.

ArgumentException utilise le COR_E_ARGUMENT HRESULT, qui a la valeur 0x80070057.

Pour obtenir la liste des valeurs initiales des propriétés d’une instance de ArgumentException, consultez le ArgumentException constructeurs.

Dans F#, vous pouvez utiliser la fonction invalidArg pour générer et déclencher une ArgumentException.

Constructeurs

ArgumentException()

Initialise une nouvelle instance de la classe ArgumentException.

ArgumentException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la classe ArgumentException avec des données sérialisées.

ArgumentException(String)

Initialise une nouvelle instance de la classe ArgumentException avec un message d'erreur spécifié.

ArgumentException(String, Exception)

Initialise une nouvelle instance de la classe ArgumentException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception.

ArgumentException(String, String)

Initialise une nouvelle instance de la classe ArgumentException avec un message d’erreur spécifié et le nom du paramètre ayant provoqué cette exception.

ArgumentException(String, String, Exception)

Initialise une nouvelle instance de la classe ArgumentException avec un message d’erreur spécifié, le nom du paramètre et une référence à l’exception interne ayant provoqué cette exception.

Propriétés

Data

Obtient une collection de paires clé/valeur qui fournissent des informations définies par l'utilisateur supplémentaires sur l'exception.

(Hérité de Exception)
HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.

(Hérité de Exception)
InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.

(Hérité de Exception)
Message

Obtient le message d'erreur et le nom du paramètre, ou le message d'erreur uniquement si aucun nom de paramètre n'a été défini.

ParamName

Obtient le nom du paramètre qui a provoqué cette exception.

Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l'exception actuelle.

(Hérité de Exception)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures.

(Hérité de Exception)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetObjectData(SerializationInfo, StreamingContext)

Définit l'objet SerializationInfo avec le nom du paramètre et d'autres informations se rapportant à l'exception.

GetObjectData(SerializationInfo, StreamingContext)

En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception.

(Hérité de Exception)
GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ThrowIfNullOrEmpty(String, String)

Lève une exception si argument elle est null ou vide.

ToString()

Crée et retourne une chaîne représentant l'exception actuelle.

(Hérité de Exception)

Événements

SerializeObjectState
Obsolète.

Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception.

(Hérité de Exception)

S’applique à

Voir aussi