Lire en anglais

Partager via


ArgumentOutOfRangeException Classe

Définition

Exception levée quand la valeur d'un argument n'appartient pas à la plage de valeurs autorisées, comme défini par la méthode appelée.

C#
public class ArgumentOutOfRangeException : ArgumentException
C#
[System.Serializable]
public class ArgumentOutOfRangeException : ArgumentException
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentOutOfRangeException : ArgumentException
Héritage
ArgumentOutOfRangeException
Héritage
ArgumentOutOfRangeException
Attributs
Implémente

Exemples

L’exemple suivant définit une classe pour contenir des informations sur un invité invité. Si l’invité a moins de 21 ans, une ArgumentOutOfRangeException exception est levée.

C#
using System;
using static System.Console;

public class Program
{
    public static void Main(string[] args)
    {
        try
        {
            var guest1 = new Guest("Ben", "Miller", 17);
            WriteLine(guest1.GuestInfo);
        }
        catch (ArgumentOutOfRangeException argumentOutOfRangeException)
        {
            WriteLine($"Error: {argumentOutOfRangeException.Message}");
        }
    }
}

class Guest
{
    private const int minimumRequiredAge = 21;

    private string firstName;
    private string lastName;
    private int age;

    public Guest(string firstName, string lastName, int age)
    {
        if (age < minimumRequiredAge)
            throw new ArgumentOutOfRangeException(nameof(age), $"All guests must be {minimumRequiredAge}-years-old or older.");

        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    public string GuestInfo => $"{firstName} {lastName}, {age}";
}

Remarques

Une ArgumentOutOfRangeException exception est levée lorsqu’une méthode est appelée et qu’au moins un des arguments passés à la méthode n’est pas null et contient une valeur non valide qui n’est pas membre du jeu de valeurs attendu pour l’argument. La ParamName propriété identifie l’argument non valide et la ActualValue propriété, si une valeur est présente, identifie la valeur non valide.

En règle générale, une ArgumentOutOfRangeException erreur de développeur est générée. Au lieu de gérer l’exception dans un try/catch bloc, vous devez éliminer la cause de l’exception ou, si l’argument est retourné par un appel de méthode ou une entrée par l’utilisateur avant d’être passé à la méthode qui lève l’exception, vous devez valider les arguments avant de les transmettre à la méthode.

ArgumentOutOfRangeException est largement utilisé par :

Les conditions dans lesquelles une ArgumentOutOfRangeException exception est levée sont les suivantes :

  • Vous récupérez le membre d’une collection par son numéro d’index, et le numéro d’index n’est pas valide.

    Il s’agit de la cause la plus courante d’une ArgumentOutOfRangeException exception. En règle générale, le numéro d’index n’est pas valide pour l’une des quatre raisons suivantes :

    1. La collection n’a aucun membre, et votre code suppose que c’est le cas. L’exemple suivant tente de récupérer le premier élément d’une collection qui ne contient aucun élément :

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example4
      {
         public static void Main()
         {
            var list = new List<string>();
            Console.WriteLine("Number of items: {0}", list.Count);
            try {
               Console.WriteLine("The first item: '{0}'", list[0]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      // The example displays the following output:
      //   Number of items: 0
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      

      Pour empêcher l’exception, case activée si la propriété de Count la collection est supérieure à zéro avant de tenter de récupérer des membres, comme le fait le fragment de code suivant.

      C#
      if (list.Count > 0)
         Console.WriteLine("The first item: '{0}'", list[0]);
      
    2. Dans certains cas, l’exception peut se produire parce que vous tentez d’ajouter un membre à une collection en utilisant un index qui n’existe pas, plutôt qu’en appelant la méthode, telle que Add, qui existe à cet effet. L’exemple suivant tente d’ajouter un élément à une collection à l’aide d’un index inexistant plutôt que d’appeler la List<T>.Add méthode .

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example13
      {
         public static void Main()
         {
            var numbers = new List<int>();
            numbers.AddRange( new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20 } );
      
            var squares = new List<int>();
            for (int ctr = 0; ctr < numbers.Count; ctr++)
               squares[ctr] = (int) Math.Pow(numbers[ctr], 2);
         }
      }
      // The example displays the following output:
      //    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
      //    Parameter name: index
      //       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
      //       at Example.Main()
      

      Le fragment de code suivant corrige cette erreur :

      C#
      var squares = new List<int>();
      for (int ctr = 0; ctr < numbers.Count; ctr++)
         squares.Add((int) Math.Pow(numbers[ctr], 2));
      
    3. Vous tentez de récupérer un élément dont l’index est négatif. Cela se produit généralement parce que vous avez recherché l’index d’un élément particulier dans une collection et que vous avez supposé à tort que la recherche a réussi. Dans l’exemple suivant, l’appel à la List<T>.FindIndex(Predicate<T>) méthode ne parvient pas à trouver une chaîne égale à « Z » et retourne donc -1. Toutefois, il s’agit d’une valeur d’index non valide.

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         public static void Main()
         {
            var list = new List<string>();
            list.AddRange( new String[] { "A", "B", "C" } );
            // Get the index of the element whose value is "Z".
            int index = list.FindIndex((new StringSearcher("Z")).FindEquals);
            try {
               Console.WriteLine("Index {0} contains '{1}'", index, list[index]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      
      internal class StringSearcher
      {
         string value;
      
         public StringSearcher(string value)
         {
            this.value = value;
         }
      
         public bool FindEquals(string s)
         {
            return s.Equals(value, StringComparison.InvariantCulture);
         }
      }
      // The example displays the following output:
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      

      Pour éviter l’exception, case activée que la recherche réussit en vous assurant que l’index retourné est supérieur ou égal à zéro avant de tenter de récupérer l’élément de la collection, comme le fait le fragment de code suivant.

      C#
      // Get the index of the element whose value is "Z".
      int index = list.FindIndex((new StringSearcher("Z")).FindEquals);
      if (index >= 0)
         Console.WriteLine("'Z' is found at index {0}", list[index]);
      
    4. Vous tentez de récupérer un élément dont l’index est égal à la valeur de la propriété de Count la collection, comme l’illustre l’exemple suivant.

      C#
      using System;
      using System.Collections.Generic;
      
      public class Example8
      {
         public static void Main()
         {
            var list = new List<string>();
            list.AddRange( new String[] { "A", "B", "C" } );
            try {
               // Display the elements in the list by index.
               for (int ctr = 0; ctr <= list.Count; ctr++)
                  Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
            }
            catch (ArgumentOutOfRangeException e) {
               Console.WriteLine(e.Message);
            }
         }
      }
      // The example displays the following output:
      //   Index 0: A
      //   Index 1: B
      //   Index 2: C
      //   Index was out of range. Must be non-negative and less than the size of the collection.
      //   Parameter name: index
      

      Étant donné que les collections dans .NET utilisent l’indexation de base zéro, le premier élément de la collection se trouve à l’index 0 et le dernier élément est à index Count - 1. Vous pouvez éliminer l’erreur en vous assurant d’accéder au dernier élément à l’index Count - 1, comme le fait le code suivant.

      C#
      // Display the elements in the list by index.
      for (int ctr = 0; ctr < list.Count; ctr++)
         Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
      
  • Vous tentez d’effectuer une opération de chaîne en appelant une méthode de manipulation de chaîne, et l’index de départ n’existe pas dans la chaîne.

    Les surcharges de méthodes telles que String.Compare, , String.CompareOrdinalString.IndexOf, IndexOfAny, String.InsertString.LastIndexOfAnyString.LastIndexOf, Removeou String.Substring qui vous permettent de spécifier l’index de départ de l’opération nécessitent que l’index soit une position valide dans la chaîne. Les index valides varient de 0 à String.Length - 1.

    Il existe quatre causes courantes de cette ArgumentOutOfRangeException exception :

    1. Vous utilisez une chaîne vide ou String.Empty. Étant donné que sa String.Length propriété renvoie 0, toute tentative de manipulation par index lève une ArgumentOutOfRangeException exception. L’exemple suivant définit une GetFirstCharacter méthode qui retourne le premier caractère d’une chaîne. Si la chaîne est vide, comme la chaîne finale passée à la méthode, la méthode lève une ArgumentOutOfRangeException exception.

      C#
      using System;
      
      public class Example1
      {
          public static void Main()
          {
              String[] words = { "the", "today", "tomorrow", " ", "" };
              foreach (var word in words)
                  Console.WriteLine("First character of '{0}': '{1}'",
                                    word, GetFirstCharacter(word));
          }
      
          private static char GetFirstCharacter(string s)
          {
              return s[0];
          }
      }
      // The example displays the following output:
      //    First character of //the//: //t//
      //    First character of //today//: //t//
      //    First character of //tomorrow//: //t//
      //    First character of // //: // //
      //
      //    Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
      //       at Example.Main()
      

      Vous pouvez éliminer l’exception en testant si la chaîne String.Length est supérieure à zéro ou en appelant la IsNullOrEmpty méthode pour vous assurer que la chaîne n’est pas null ou vide. Le fragment de code suivant effectue cette dernière opération. Dans ce cas, si la chaîne est null ou vide, la GetFirstCharacter méthode retourne U+0000.

      C#
      static char GetFirstCharacter(string s)
      {
          if (string.IsNullOrEmpty(s))
              return '\u0000';
          else
              return s[0];
      }
      
    2. Vous manipulez une chaîne en fonction de la position d’une sous-chaîne dans cette chaîne, et vous n’avez pas pu déterminer si la sous-chaîne a été trouvée.

      L’exemple suivant extrait le deuxième mot d’une expression de deux mots. Il lève une ArgumentOutOfRangeException exception si l’expression se compose d’un seul mot et ne contient donc pas d’espace incorporé. Cela se produit parce que l’appel à la String.IndexOf(String) méthode retourne -1 pour indiquer que la recherche a échoué, et cette valeur non valide est ensuite passée à la String.Substring(Int32) méthode.

      C#
      using System;
      
      public class Example17
      {
         public static void Main()
         {
            String[] phrases = { "ocean blue", "concerned citizen",
                                 "runOnPhrase" };
            foreach (var phrase in phrases)
               Console.WriteLine("Second word is {0}", GetSecondWord(phrase));
         }
      
         static string GetSecondWord(string s)
         {
            int pos = s.IndexOf(" ");
            return s.Substring(pos).Trim();
         }
      }
      // The example displays the following output:
      //    Second word is blue
      //    Second word is citizen
      //
      //    Unhandled Exception: System.ArgumentOutOfRangeException: StartIndex cannot be less than zero.
      //    Parameter name: startIndex
      //       at System.String.Substring(Int32 startIndex, Int32 length)
      //       at Example17.GetSecondWord(String s)
      //       at Example17.Main()
      

      Pour éliminer l’exception, validez la valeur retournée par la méthode de recherche de chaîne avant d’appeler la méthode de manipulation de chaîne.

      C#
      using System;
      
      public class Example18
      {
         public static void Main()
         {
            String[] phrases = { "ocean blue", "concerned citizen",
                                 "runOnPhrase" };
            foreach (var phrase in phrases) {
               string word = GetSecondWord(phrase);
               if (! string.IsNullOrEmpty(word))
                  Console.WriteLine("Second word is {0}", word);
            }
         }
      
         static string GetSecondWord(string s)
         {
            int pos = s.IndexOf(" ");
            if (pos >= 0)
               return s.Substring(pos).Trim();
            else
               return string.Empty;
         }
      }
      // The example displays the following output:
      //       Second word is blue
      //       Second word is citizen
      
    3. Vous avez tenté d’extraire une sous-chaîne qui se trouve en dehors de la plage de la chaîne actuelle.

      Les méthodes qui extraient les sous-chaînes nécessitent toutes que vous spécifiiez la position de départ de la sous-chaîne et, pour les sous-chaînes qui ne continuent pas jusqu’à la fin de la chaîne, le nombre de caractères dans la sous-chaîne. Notez qu’il ne s’agit pas de l’index du dernier caractère de la sous-chaîne.

      Une ArgumentOutOfRangeException exception est généralement levée dans ce cas, car vous avez mal calculé le nombre de caractères dans la sous-chaîne. Si vous utilisez une méthode de recherche telle que String.IndexOf pour identifier les positions de début et de fin d’une sous-chaîne :

      • Si le caractère de la position de fin retournée par String.IndexOf doit être inclus dans la sous-chaîne, la position de fin de la sous-chaîne est donnée par la formule

        endIndex - startIndex + 1
        
      • Si le caractère de la position de fin retournée par String.IndexOf doit être exclu de la sous-chaîne, la position de fin de la sous-chaîne est donnée par la formule

        endIndex - startIndex
        

        L’exemple suivant définit une FindWords méthode qui utilise la String.IndexOfAny(Char[], Int32) méthode pour identifier les caractères d’espace et les marques de ponctuation dans une chaîne et retourne un tableau qui contient les mots trouvés dans la chaîne.

        C#
        using System;
        using System.Collections.Generic;
        
        public class Example19
        {
           public static void Main()
           {
              string sentence = "This is a simple, short sentence.";
              Console.WriteLine("Words in '{0}':", sentence);
              foreach (var word in FindWords(sentence))
                 Console.WriteLine("   '{0}'", word);
           }
        
           static String[] FindWords(string s)
           {
              int start = 0, end = 0;
              Char[] delimiters = { ' ', '.', ',', ';', ':', '(', ')' };
              var words = new List<string>();
        
              while (end >= 0) {
                 end = s.IndexOfAny(delimiters, start);
                 if (end >= 0) {
                    if (end - start > 0)
                       words.Add(s.Substring(start, end - start));
        
                    start = end + 1;
                 }
                 else {
                    if (start < s.Length - 1)
                       words.Add(s.Substring(start));
                 }
              }
              return words.ToArray();
           }
        }
        // The example displays the following output:
        //       Words in 'This is a simple, short sentence.':
        //          'This'
        //          'is'
        //          'a'
        //          'simple'
        //          'short'
        //          'sentence'
        
  • Vous avez passé un nombre négatif à une méthode avec un argument qui ne nécessite que des nombres positifs et zéro, ou vous avez passé un nombre négatif ou zéro à une méthode avec un argument qui ne nécessite que des nombres positifs.

    Par exemple, la Array.CreateInstance(Type, Int32, Int32, Int32) méthode exige que vous spécifiiez le nombre d’éléments dans chaque dimension d’un tableau à deux dimensions ; les valeurs valides pour chaque dimension peuvent être comprises entre 0 et Int32.MaxValue. Toutefois, étant donné que l’argument de dimension dans l’exemple suivant a une valeur négative, la méthode lève une ArgumentOutOfRangeException exception.

    C#
    using System;
    
    public class Example01
    {
        public static void Main()
        {
            int dimension1 = 10;
            int dimension2 = -1;
            try
            {
                Array arr = Array.CreateInstance(typeof(string),
                                                 dimension1, dimension2);
            }
            catch (ArgumentOutOfRangeException e)
            {
                if (e.ActualValue != null)
                    Console.WriteLine("{0} is an invalid value for {1}: ", e.ActualValue, e.ParamName);
                Console.WriteLine(e.Message);
            }
        }
    }
    // The example displays the following output:
    //     Non-negative number required.
    //     Parameter name: length2
    

    Pour corriger l’erreur, vérifiez que la valeur de l’argument non valide n’est pas négative. Pour ce faire, fournissez une valeur valide, comme le fait le fragment de code suivant.

    C#
    int dimension1 = 10;
    int dimension2 = 10;
    Array arr = Array.CreateInstance(typeof(string),
                                     dimension1, dimension2);
    

    Vous pouvez également valider l’entrée et, si elle n’est pas valide, effectuer une action. Le fragment de code suivant affiche un message d’erreur au lieu d’appeler la méthode .

    C#
    if (dimension1 < 0 || dimension2 < 0)
    {
        Console.WriteLine("Unable to create the array.");
        Console.WriteLine("Specify non-negative values for the two dimensions.");
    }
    else
    {
        arr = Array.CreateInstance(typeof(string),
                                   dimension1, dimension2);
    }
    
  • Il existe une condition de concurrence dans une application qui est multithread ou dont les tâches s’exécutent de façon asynchrone et qui met à jour un tableau ou une collection.

    L’exemple suivant utilise un List<T> objet pour remplir une collection d’objets Continent . Il lève un si l’exemple tente d’afficher ArgumentOutOfRangeException les sept éléments de la collection avant que la collection soit entièrement remplie.

    C#
    using System;
    using System.Collections.Generic;
    using System.Threading;
    
    public class Continent
    {
       public string? Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }
    }
    
    public class Example11
    {
       static List<Continent> continents = new List<Continent>();
       static string? s_msg;
    
       public static void Main()
       {
          String[] names = { "Africa", "Antarctica", "Asia",
                             "Australia", "Europe", "North America",
                             "South America" };
          // Populate the list.
          foreach (var name in names) {
             var th = new Thread(PopulateContinents);
             th.Start(name);
          }
          Console.WriteLine(s_msg);
          Console.WriteLine();
    
          // Display the list.
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var continent = continents[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}",
                               continent.Name, continent.Population,
                               continent.Area);
          }
       }
    
       private static void PopulateContinents(Object? obj)
       {
          string? name = obj?.ToString();
          s_msg += string.Format("Adding '{0}' to the list.\n", name);
          var continent = new Continent();
          continent.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(50);
          continents.Add(continent);
       }
    }
    // The example displays output like the following:
    //    Adding //Africa// to the list.
    //    Adding //Antarctica// to the list.
    //    Adding //Asia// to the list.
    //    Adding //Australia// to the list.
    //    Adding //Europe// to the list.
    //    Adding //North America// to the list.
    //    Adding //South America// to the list.
    //
    //
    //
    //    Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    //    Parameter name: index
    //       at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
    //       at Example.Main()
    

    Dans ce cas, deux ressources sont accessibles à partir de plusieurs threads :

    • Collection continents. Sa List<T>.Add méthode est appelée à partir de plusieurs threads. En outre, le thread main ou principal suppose que la collection est entièrement remplie avec sept éléments lorsqu’elle itère ses membres.

    • Chaîne msg concaténée à partir de plusieurs threads.

    Pour corriger l’erreur, assurez-vous que l’état partagé est accessible de manière thread-safe, comme suit.

    • Si votre application utilise un tableau ou un objet de collection, envisagez d’utiliser une classe de collection thread-safe, telle que les types dans l’espace System.Collections.Concurrent de noms ou la System.Collections.Immutable version hors bande.

    • Assurez-vous que l’état partagé (c’est-à-dire les ressources accessibles par plusieurs threads) est accessible de manière sécurisée par thread, de sorte qu’un seul thread à la fois dispose d’un accès exclusif aux ressources. Un grand nombre de classes, telles que CountdownEvent, Interlocked, Monitoret Mutex, sont disponibles pour synchroniser l’accès aux ressources. Pour plus d’informations, consultez Threading. En outre, la prise en charge du langage est disponible via l’instruction lock en C# et la construction SyncLock dans Visual Basic.

    L’exemple suivant traite le ArgumentOutOfRangeException et les autres problèmes de l’exemple précédent. Il remplace l’objet List<T> par un ConcurrentBag<T> objet pour garantir que l’accès à la collection est thread-safe, utilise un CountdownEvent objet pour s’assurer que le thread d’application continue uniquement après l’exécution d’autres threads et utilise un verrou pour s’assurer qu’un seul thread peut accéder à la variable à la msg fois.

    C#
    using System;
    using System.Collections.Concurrent;
    using System.Threading;
    
    public class ContinentD
    {
       public string? Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }
    }
    
    public class Example12
    {
       static ConcurrentBag<ContinentD> ContinentDs = new ConcurrentBag<ContinentD>();
       static CountdownEvent? gate;
       static string msg = string.Empty;
    
       public static void Main()
       {
          String[] names = { "Africa", "Antarctica", "Asia",
                             "Australia", "Europe", "North America",
                             "South America" };
          gate = new CountdownEvent(names.Length);
    
          // Populate the list.
          foreach (var name in names) {
             var th = new Thread(PopulateContinentDs);
             th.Start(name);
          }
    
          // Display the list.
          gate.Wait();
          Console.WriteLine(msg);
          Console.WriteLine();
    
          var arr = ContinentDs.ToArray();
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var ContinentD = arr[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}",
                               ContinentD.Name, ContinentD.Population,
                               ContinentD.Area);
          }
       }
    
       private static void PopulateContinentDs(Object? obj)
       {
          string? name = obj?.ToString();
          lock(msg) {
             msg += string.Format("Adding '{0}' to the list.\n", name);
          }
          var ContinentD = new ContinentD();
          ContinentD.Name = name;
          // Sleep to simulate retrieving remaining data.
          Thread.Sleep(25);
          ContinentDs.Add(ContinentD);
          gate?.Signal();
       }
    }
    // The example displays output like the following:
    //       Adding 'Africa' to the list.
    //       Adding 'Antarctica' to the list.
    //       Adding 'Asia' to the list.
    //       Adding 'Australia' to the list.
    //       Adding 'Europe' to the list.
    //       Adding 'North America' to the list.
    //       Adding 'South America' to the list.
    //
    //
    //       Africa: Area: 0, Population 0
    //       Antarctica: Area: 0, Population 0
    //       Asia: Area: 0, Population 0
    //       Australia: Area: 0, Population 0
    //       Europe: Area: 0, Population 0
    //       North America: Area: 0, Population 0
    //       South America: Area: 0, Population 0
    

ArgumentOutOfRangeException utilise le COR_E_ARGUMENTOUTOFRANGE HRESULT, qui a la valeur 0x80131502.

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

Constructeurs

ArgumentOutOfRangeException()

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException.

ArgumentOutOfRangeException(SerializationInfo, StreamingContext)
Obsolète.

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

ArgumentOutOfRangeException(String)

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException avec le nom du paramètre ayant provoqué l'exception.

ArgumentOutOfRangeException(String, Exception)

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException avec un message d'erreur spécifié et l'exception qui est à l'origine de cette exception.

ArgumentOutOfRangeException(String, Object, String)

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException avec le nom du paramètre, la valeur de l'argument et un message d'erreur spécifié.

ArgumentOutOfRangeException(String, String)

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

Propriétés

ActualValue

Obtient la valeur de l'argument qui provoque cette exception.

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 la chaîne représentant la valeur de l'argument non valide, ou uniquement le message d'erreur si la valeur de l'argument est Null.

ParamName

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

(Hérité de ArgumentException)
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)
Obsolète.

Définit l'objet SerializationInfo à l'aide de la valeur de l'argument non valide et d'autres informations se rapportant à l'exception.

GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

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

(Hérité de ArgumentException)
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)
ThrowIfEqual<T>(T, T, String)

Lève un ArgumentOutOfRangeException si value égal à other.

ThrowIfGreaterThan<T>(T, T, String)

Lève un ArgumentOutOfRangeException si value supérieur à other.

ThrowIfGreaterThanOrEqual<T>(T, T, String)

Lève un ArgumentOutOfRangeException si value est supérieur ou égal à other.

ThrowIfLessThan<T>(T, T, String)

Lève un ArgumentOutOfRangeException si value est inférieur à other.

ThrowIfLessThanOrEqual<T>(T, T, String)

Lève un ArgumentOutOfRangeException si value est inférieur ou égal à other.

ThrowIfNegative<T>(T, String)

Lève un ArgumentOutOfRangeException si value est négatif.

ThrowIfNegativeOrZero<T>(T, String)

Lève un ArgumentOutOfRangeException si value est négatif ou zéro.

ThrowIfNotEqual<T>(T, T, String)

Lève un ArgumentOutOfRangeException si value n’est pas égal à other.

ThrowIfZero<T>(T, String)

Lève un ArgumentOutOfRangeException si value est égal à zéro.

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 à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi