ArgumentException, classe

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

Espace de noms : System
Assembly : mscorlib (dans mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class ArgumentException : SystemException, ISerializable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class ArgumentException extends SystemException implements ISerializable
SerializableAttribute 
ComVisibleAttribute(true) 
public class ArgumentException extends SystemException implements ISerializable

L'exception ArgumentException est levée lorsqu'une méthode est appelée et qu'au moins un des arguments passés n'est pas conforme aux spécifications de paramètres de la méthode appelée. Toutes les instances de ArgumentException doivent comporter un message d'erreur significatif décrivant l'argument non valide, ainsi que la plage de valeurs acceptées pour l'argument.

Les classes dérivées principales de ArgumentException sont ArgumentNullException et ArgumentOutOfRangeException. Utilisez ces classes dérivées au lieu de ArgumentException, sauf lorsque aucune de ces classes n'est appropriée. Par exemple, des exceptions doivent être levées par :

  • ArgumentNullException chaque fois qu'référence Null (Nothing en Visual Basic) est passée à une méthode pour laquelle cet argument n'est pas valide.

  • ArgumentOutOfRangeException lorsque la valeur d'un argument ne figure pas dans la plage des valeurs autorisées, par exemple, lorsque la valeur « 46 » est passée à l'argument du mois durant la création de DateTime.

Si l'appel de la méthode ne comporte aucun argument ou si l'échec n'est pas provoqué par les arguments eux-mêmes, utilisez InvalidOperationException.

ArgumentException utilise le HRESULT COR_E_ARGUMENT dont la valeur est 0x80070057.

Pour obtenir une liste des valeurs initiales des propriétés d'une instance de ArgumentException, consultez les constructeurs ArgumentException.

L'exemple suivant illustre la levée et l'interception de ArgumentException.

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.

System.Object
   System.Exception
     System.SystemException
      System.ArgumentException
         Classes dérivées

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0

Ajouts de la communauté

AJOUTER
Afficher: