ArgumentOutOfRangeException ArgumentOutOfRangeException ArgumentOutOfRangeException ArgumentOutOfRangeException Class

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.The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.

public ref class ArgumentOutOfRangeException : ArgumentException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ArgumentOutOfRangeException : ArgumentException
type ArgumentOutOfRangeException = class
    inherit ArgumentException
    interface ISerializable
Public Class ArgumentOutOfRangeException
Inherits ArgumentException
Héritage
Attributs
Implémente

Exemples

L’exemple suivant définit une classe pour contenir des informations sur un invité invité.The following example defines a class to contain information about an invited guest. Si l’invité a moins de 21 ans un ArgumentOutOfRangeException exception est levée.If the guest is younger than 21, an ArgumentOutOfRangeException exception is thrown.

using System;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            Guest guest1 = new Guest("Ben", "Miller", 17);
            Console.WriteLine(guest1.GuestInfo());
        }
        catch (ArgumentOutOfRangeException outOfRange)
        {

            Console.WriteLine("Error: {0}", outOfRange.Message);
        }
    }
}

class Guest
{
    private string FirstName;
    private string LastName;
    private int Age;

    public Guest(string fName, string lName, int age)
    {
        FirstName = fName;
        LastName = lName;
        if (age < 21)
            throw new ArgumentOutOfRangeException("age","All guests must be 21-years-old or older.");
        else
            Age = age;
    }

    public string GuestInfo()
    {
        string gInfo = FirstName + " " + LastName + ", " + Age.ToString();
        return(gInfo);
    }
}
Module Module1
   Public Sub Main()
       Try
           Dim guest1 As Guest = New Guest("Ben", "Miller", 17)
           Console.WriteLine(guest1.GuestInfo)
       Catch outOfRange As ArgumentOutOfRangeException
           Console.WriteLine("Error: {0}", outOfRange.Message)
       End Try
   End Sub
End Module

Class Guest
    Private FirstName As String
    Private LastName As String
    Private Age As Integer

    Public Sub New(ByVal fName As String, ByVal lName As String, ByVal age As Integer)
        MyBase.New()
        FirstName = fName
        LastName = lName
        If (age < 21) Then
            Throw New ArgumentOutOfRangeException("age", "All guests must be 21-years-old or older.")
        Else
            age = age
        End If
    End Sub

    Public Function GuestInfo() As String
        Dim gInfo As String = (FirstName + (" " _
                    + (Me.LastName + (", " + Me.Age.ToString))))
        Return gInfo
    End Function
End Class

Remarques

Un ArgumentOutOfRangeException exception est levée lorsqu’une méthode est appelée et au moins un des arguments passés à la méthode n’est pas null et contient une valeur non valide qui n’est pas un membre de l’ensemble des valeurs attendues pour l’argument.An ArgumentOutOfRangeException exception is thrown when a method is invoked and at least one of the arguments passed to the method is not null and contains an invalid value that is not a member of the set of values expected for the argument. Le ParamName propriété identifie l’argument non valide et le ActualValue propriété, si une valeur est présente, identifie la valeur non valide.The ParamName property identifies the invalid argument, and the ActualValue property, if a value is present, identifies the invalid value.

En règle générale, un ArgumentOutOfRangeException résulte de l’erreur de développement.Typically, an ArgumentOutOfRangeException results from developer error. Au lieu de la gestion de l’exception dans un try / catch bloc, vous devez éliminer la cause de l’exception ou, si l’argument est retournée par un appel de méthode ou d’une entrée par l’utilisateur avant d’être passée à la méthode qui lève l’exception , vous devez valider les arguments avant de les passer à la méthode.Instead of handling the exception in a try/catch block, you should eliminate the cause of the exception or, if the argument is returned by a method call or input by the user before being passed to the method that throws the exception, you should validate arguments before passing them to the method.

ArgumentOutOfRangeException est fréquemment utilisé par :ArgumentOutOfRangeException is used extensively by:

Les conditions dans lesquelles un ArgumentOutOfRangeException d’exception sont les suivantes :The conditions in which an ArgumentOutOfRangeException exception is thrown include the following:

  • 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.You are retrieving the member of a collection by its index number, and the index number is invalid.

    Ceci est la cause la plus courante d’un ArgumentOutOfRangeException exception.This is the most common cause of an ArgumentOutOfRangeException exception. En règle générale, le numéro d’index n’est pas valide pour l’une des quatre raisons :Typically, the index number is invalid for one of four reasons:

    1. La collection ne possède aucun membre, et votre code part du principe qu’il détecte.The collection has no members, and your code assumes that it does. L’exemple suivant tente de récupérer le premier élément d’une collection qui ne comporte aucun élément :The following example attempts to retrieve the first element of a collection that has no elements:

      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         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
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim list As New List(Of String)
            Console.WriteLine("Number of items: {0}", list.Count)
            Try
               Console.WriteLine("The first item: '{0}'", list(0))
            Catch e As ArgumentOutOfRangeException
               Console.WriteLine(e.Message)
            End Try
         End Sub
      End Module
      ' 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 cette exception, vérifiez si la collection Count propriété est supérieure à zéro avant d’essayer de récupérer tous les membres, comme le fait le fragment de code suivant.To prevent the exception, check whether the collection's Count property is greater than zero before attempting to retrieve any members, as the following code fragment does.

      if (list.Count > 0)
         Console.WriteLine("The first item: '{0}'", list[0]);
      
      If list.Count > 0 Then
         Console.WriteLine("The first item: '{0}'", list(0))
      End If
      
    2. Dans certains cas, l’exception peut se produire parce que vous tentez d’ajouter un membre à une collection à l’aide d’un index qui n’existe pas, plutôt qu’en appelant la méthode, telle que Add, qui existe à cet effet.In some cases, the exception may occur because you are attempting to add a member to a collection by using an index that does not exist, rather than by calling the method, such as Add, that exists for this purpose. L’exemple suivant tente d’ajouter un élément à une collection en utilisant un index inexistant, au lieu d’appeler le List<T>.Add (méthode).The following example attempts to add an element to a collection by using a non-existent index rather than calling the List<T>.Add method.

      using System;
      using System.Collections.Generic;
      
      public class Example
      {
         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()
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim numbers As New List(Of Integer)
            numbers.AddRange( { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20 } )
            
            Dim squares As New List(Of Integer)
            For ctr As Integer = 0 To numbers.Count - 1
               squares(ctr) = CInt(numbers(ctr) ^ 2) 
            Next
         End Sub
      End Module
      ' 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 :The following code fragment corrects this error:

      var squares = new List<int>();
      for (int ctr = 0; ctr < numbers.Count; ctr++)
         squares.Add((int) Math.Pow(numbers[ctr], 2)); 
      
      Dim squares As New List(Of Integer)
      For ctr As Integer = 0 To numbers.Count - 1
         squares.Add(CInt(numbers(ctr) ^ 2)) 
      Next
      
    3. Vous tentez de récupérer un élément dont l’index est un nombre négatif.You're attempting to retrieve an item whose index is negative. Cela se produit généralement parce que vous avez recherché une collection pour l’index d’un élément particulier et avez supposés à tort que la recherche est réussie.This usually occurs because you've searched a collection for the index of a particular element and have erroneously assumed that the search is successful. Dans l’exemple suivant, l’appel à la List<T>.FindIndex(Predicate<T>) méthode ne parvient pas à trouver une chaîne égale à « Z », de sorte que retourne -1.In the following example, the call to the List<T>.FindIndex(Predicate<T>) method fails to find a string equal to "Z" and so returns -1. Toutefois, il s’agit d’une valeur d’index non valide.However, this is an invalid index value.

      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
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim list As New List(Of String) 
            list.AddRange( { "A", "B", "C" } )
            ' Get the index of the element whose value is "Z".
            Dim index As Integer = list.FindIndex(AddressOf (New StringSearcher("Z")).FindEquals)
            Try
               Console.WriteLine("Index {0} contains '{1}'", index, list(index)) 
            Catch e As ArgumentOutOfRangeException
               Console.WriteLine(e.Message)
            End Try
         End Sub
      End Module
      
      Friend Class StringSearcher
         Dim value As String
         
         Public Sub New(value As String)
            Me.value = value
         End Sub
         
         Public Function FindEquals(s As String) As Boolean
            Return s.Equals(value, StringComparison.InvariantCulture) 
         End Function
      End Class
      ' 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 empêcher cette exception, vérifiez que la recherche a réussi 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 code suivant fragment le fait.To prevent the exception, check that the search is successful by making sure that the returned index is greater than or equal to zero before attempting to retrieve the item from the collection, as the following code fragment does.

      // 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]); 
      
      ' Get the index of the element whose value is "Z".
      Dim index As Integer = list.FindIndex(AddressOf (New StringSearcher("Z")).FindEquals)
      If index >= 0 Then
         Console.WriteLine("Index {0} contains '{1}'", index, list(index)) 
      End If
      
    4. Vous tentez de récupérer un élément dont l’index est égale à la valeur de la collection Count propriété, comme dans l’exemple suivant illustre.You're attempting to retrieve an element whose index is equal to the value of the collection's Count property, as the following example illustrates.

      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" } );
            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
      
      Imports System.Collections.Generic
      
      Module Example
         Public Sub Main()
            Dim list As New List(Of String) 
            list.AddRange( { "A", "B", "C" } )
            Try
               ' Display the elements in the list by index.
               For ctr As Integer = 0 To list.Count
                  Console.WriteLine("Index {0}: {1}", ctr, list(ctr)) 
               Next   
            Catch e As ArgumentOutOfRangeException
               Console.WriteLine(e.Message)
            End Try
         End Sub
      End Module
      ' 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 est à l’index 0, et le dernier élément est à l’index Count - 1.Because collections in .NET use zero-based indexing, the first element of the collection is at index 0, and the last element is at index Count - 1. Vous pouvez éliminer l’erreur en veillant à ce que vous y accéder au dernier élément à l’index Count - 1, comme avec le code suivant.You can eliminate the error by ensuring that you access the last element at index Count - 1, as the following code does.

      // Display the elements in the list by index.
      for (int ctr = 0; ctr < list.Count; ctr++) 
         Console.WriteLine("Index {0}: {1}", ctr, list[ctr]);
      
      ' Display the elements in the list by index.
      For ctr As Integer = 0 To list.Count - 1 
         Console.WriteLine("Index {0}: {1}", ctr, list(ctr)) 
      Next   
      
  • Vous essayez 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.You are attempting to perform a string operation by calling a string manipulation method, and the starting index does not exist in the string.

    Surcharges de méthodes telles que comme String.Compare, String.CompareOrdinal, String.IndexOf, IndexOfAny, String.Insert, String.LastIndexOf, String.LastIndexOfAny, Remove, ou String.Substring vous permettent de spécifier l’index de départ de la opération requièrent une position valide dans la chaîne de l’index.Overloads of methods such as such as String.Compare, String.CompareOrdinal, String.IndexOf, IndexOfAny, String.Insert, String.LastIndexOf, String.LastIndexOfAny, Remove, or String.Substring that allow you to specify the starting index of the operation require that the index be a valid position within the string. Index valides comprise entre 0 et String.Length - 1.Valid indexes range from 0 to String.Length - 1.

    Il existe quatre causes courantes de ce ArgumentOutOfRangeException exception :There are four common causes of this ArgumentOutOfRangeException exception:

    1. Vous travaillez avec une chaîne vide, ou String.Empty.You are working with an empty string, or String.Empty. Étant donné que son String.Length propriété retourne 0, toute tentative de les manipuler à l’index lève une ArgumentOutOfRangeException exception.Because its String.Length property returns 0, any attempt to manipulate it by index throws an ArgumentOutOfRangeException exception. L’exemple suivant, définit un GetFirstCharacter méthode qui retourne le premier caractère d’une chaîne.The following example, defines a GetFirstCharacter method that returns the first character of a string. Si la chaîne est vide, car la chaîne finale passés à la méthode est, la méthode lève un ArgumentOutOfRangeException exception.If the string is empty, as the final string passed to the method is, the method throws an ArgumentOutOfRangeException exception.

      using System;
      
      public class Example
      {
         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()
      
      Module Example
         Public Sub Main()
             Dim words() As String = { "the", "today", "tomorrow", " ", "" }
             For Each word In words
                Console.WriteLine("First character of '{0}': '{1}'", 
                                  word, GetFirstCharacter(word))
             Next                     
         End Sub
         
         Private Function GetFirstCharacter(s As String) As Char
            Return s(0)
         End Function
      End Module
      ' 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 vérifiant si la chaîne String.Length est supérieure à zéro ou en appelant le IsNullOrEmpty méthode pour vous assurer que la chaîne n’est pas null ou vide.You can eliminate the exception by testing whether the string's String.Length is greater than zero or by calling the IsNullOrEmpty method to ensure that the string is not null or empty. Le fragment de code suivant effectue cette dernière.The following code fragment does the latter. Dans ce cas, si la chaîne est null ou vide, le GetFirstCharacter méthode retourne U + 0000.In this case, if the string is null or empty, the GetFirstCharacter method returns U+0000.

      static char GetFirstCharacter(String s)
      {
         if (String.IsNullOrEmpty(s)) 
            return '\u0000';
         else   
            return s[0];
      }
      
      Function GetFirstCharacter(s As String) As Char
         If String.IsNullOrEmpty(s) Then 
            Return ChrW(0)
         Else   
            Return s(0)
         End If   
      End Function
      
    2. Vous manipulez une chaîne basée sur la position d’une sous-chaîne dans cette chaîne, et que vous avez procédé à déterminer si la sous-chaîne a été trouvée.You're manipulating a string based on the position of a substring within that string, and you've failed to determine whether the substring was actually found.

      L’exemple suivant extrait le deuxième mot d’une expression de deux mots.The following example extracts the second word of a two-word phrase. Elle lève une ArgumentOutOfRangeException exception si l’expression se compose d’un mot et par conséquent ne contient-elle pas un caractère espace incorporé.It throws an ArgumentOutOfRangeException exception if the phrase consists of only one word, and therefore does not contain an embedded space character. Cela se produit car l’appel à la String.IndexOf(String) méthode retourne -1 pour indiquer que la recherche a échoué, puis cette valeur non valide est passée à la String.Substring(Int32) (méthode).This occurs because the call to the String.IndexOf(String) method returns -1 to indicate that the search failed, and this invalid value is then passed to the String.Substring(Int32) method.

      using System;
      
      public class Example
      {
         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 Example.GetSecondWord(String s)
      //       at Example.Main()
      
      Module Example
         Public Sub Main()
            Dim phrases() As String = { "ocean blue", "concerned citizen", 
                                        "runOnPhrase" }
            For Each phrase In phrases
               Console.WriteLine("Second word is {0}", GetSecondWord(phrase))
            Next                            
        End Sub
        
        Function GetSecondWord(s As String) As String
           Dim pos As Integer = s.IndexOf(" ")
           Return s.Substring(pos).Trim()
        End Function
      End Module
      ' 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 Example.GetSecondWord(String s)
      '          at Example.Main()
      

      Pour éliminer l’exception, valider la valeur retournée par la méthode de recherche de chaîne avant d’appeler la méthode de manipulation de chaînes.To eliminate the exception, validate the value returned by the string search method before calling the string manipulation method.

      using System;
      
      public class Example
      {
         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
      
      Module Example
         Public Sub Main()
            Dim phrases() As String = { "ocean blue", "concerned citizen", 
                                        "runOnPhrase" }
            For Each phrase In phrases
               Dim word As String = GetSecondWord(phrase)
               If Not String.IsNullOrEmpty(word) Then _
                  Console.WriteLine("Second word is {0}", word)
            Next                            
         End Sub
        
         Function GetSecondWord(s As String) As String
            Dim pos As Integer = s.IndexOf(" ")
            If pos >= 0
                Return s.Substring(pos).Trim()
            Else
               Return String.Empty
            End If
        End Function
      End Module
      ' 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 est en dehors de la plage de la chaîne actuelle.You've attempted to extract a substring that is outside the range of the current string.

      Les méthodes qui extraient des sous-chaînes que toutes requièrent que vous spécifiez la position de départ de la sous-chaîne et, pour les sous-chaînes qui ne passez pas à la fin de la chaîne, le nombre de caractères dans la sous-chaîne.The methods that extract substrings all require that you specify the starting position of the substring and, for substrings that do not continue to the end of the string, the number of characters in the substring. Notez que ce n’est pas le index du dernier caractère de la sous-chaîne.Note that this is not the index of the last character in the substring.

      Un ArgumentOutOfRangeException exception est généralement levée dans ce cas, car vous avez incorrectement calculé le nombre de caractères dans la sous-chaîne.An ArgumentOutOfRangeException exception is typically thrown in this case because you've incorrectly calculated the number of characters in the substring. Si vous utilisez une méthode de recherche comme String.IndexOf pour identifier le début et fin des positions d’une sous-chaîne :If you are using a search method like String.IndexOf to identify the starting and ending positions of a substring:

      • Si le caractère de la position de fin est retourné 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 formuleIf the character in the ending position returned by String.IndexOf is to be included in the substring, the ending position of the substring is given by the formula

        endIndex - startIndex + 1  
        
      • Si le caractère de la position de fin est retourné 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 formuleIf the character in the ending position returned by String.IndexOf is to be excluded from the substring, the ending position of the substring is given by the formula

        endIndex - startIndex   
        

        L’exemple suivant définit un FindWords méthode qui utilise le String.IndexOfAny(Char[], Int32) méthode pour identifier les espaces et les signes de ponctuation marque dans une chaîne et retourne un tableau qui contient les mots trouvés dans la chaîne.The following example defines a FindWords method that uses the String.IndexOfAny(Char[], Int32) method to identify space characters and punctuation marks in a string and returns an array that contains the words found in the string.

        using System;
        using System.Collections.Generic;
        
        public class Example
        {
           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++;
                 }
                 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'
        
        Imports System.Collections.Generic
        
        Module Example
           Public Sub Main()
              Dim sentence As String = "This is a simple, short sentence."
              Console.WriteLine("Words in '{0}':", sentence)
              For Each word In FindWords(sentence)
                 Console.WriteLine("   '{0}'", word)
              Next
           End Sub
           
           Function FindWords(s As String) As String()
              Dim start, ending As Integer
              Dim delimiters() As Char = { " "c, "."c, ","c, ";"c, ":"c,
                                           "("c, ")"c }
              Dim words As New List(Of String)()
        
              Do While ending >= 0
                 ending = s.IndexOfAny(delimiters, start)
                 If ending >= 0
                    If ending - start > 0 Then
                       words.Add(s.Substring(start, ending - start)) 
                    End If
                    start = ending + 1
                 Else
                    If start < s.Length - 1 Then
                       words.Add(s.Substring(start))
                    End If      
                 End If
              Loop    
              Return words.ToArray()                         
           End Function
        End Module
        ' 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 nécessite uniquement des nombres positifs et zéro, ou vous avez passé un nombre négatif ou égal à zéro à une méthode avec un argument qui nécessite uniquement des nombres positifs.You have passed a negative number to a method with an argument that requires only positive numbers and zero, or you have passed either a negative number or zero to a method with an argument that requires only positive numbers.

    Par exemple, le Array.CreateInstance(Type, Int32, Int32, Int32) méthode requiert que vous spécifiez le nombre d’éléments dans chaque dimension d’un tableau à deux dimensions ; les valeurs valides pour chaque dimension peuvent aller de 0 à Int32.MaxValue.For example, the Array.CreateInstance(Type, Int32, Int32, Int32) method requires that you specify the number of elements in each dimension of a two-dimensional array; valid values for each dimension can range from 0 to Int32.MaxValue. Mais étant donné que l’argument de dimension dans l’exemple suivant a une valeur négative, la méthode lève un ArgumentOutOfRangeException exception.But because the dimension argument in the following example has a negative value, the method throws an ArgumentOutOfRangeException exception.

    using System;
    
    public class Example
    {
       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
    
    Module Example
       Public Sub Main()
          Dim dimension1 As Integer = 10
          Dim dimension2 As Integer = -1
          Try
             Dim arr AS Array = Array.CreateInstance(GetType(String), 
                                                     dimension1, dimension2)
          Catch e As ArgumentOutOfRangeException
             If e.ActualValue IsNot Nothing Then
                Console.WriteLine("{0} is an invalid value for {1}: ", 
                                  e.ActualValue, e.ParamName)
             End If                     
             Console.WriteLine(e.Message)
          End Try
       End Sub
    End Module
    ' The example displays the following output:
    '     Non-negative number required.
    '     Parameter name: length2
    

    Pour corriger cette erreur, assurez-vous que la valeur de l’argument non valide est négative.To correct the error, ensure that the value of the invalid argument is non-negative. Vous pouvez cela en fournissant une valeur valide, comme le fait le fragment de code suivant.You can do this by providing a valid value, as the following code fragment does.

    int dimension1 = 10;
    int dimension2 = 10;
    Array arr = Array.CreateInstance(typeof(String), 
                                     dimension1, dimension2);   
    
    Dim dimension1 As Integer = 10
    Dim dimension2 As Integer = 10
    Dim arr As Array = Array.CreateInstance(GetType(String), 
                                            dimension1, dimension2)   
    

    Vous pouvez également valider l’entrée et, si elle n’est pas valide, prendre des mesures.You can also validate the input and, if it is invalid, take some action. Le fragment de code suivant affiche un message d’erreur au lieu d’appeler la méthode.The following code fragment displays an error message instead of calling the method.

    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);   
    }
    
    If dimension1 < 0 OrElse dimension2 < 0 Then
       Console.WriteLine("Unable to create the array.")
       Console.WriteLine("Specify non-negative values for the two dimensions.")
    Else
       arr = Array.CreateInstance(GetType(String), 
                                  dimension1, dimension2)   
    End If
    
  • Il existe une condition de concurrence dans une application est multithread ou ayant des tâches qui s’exécutent en mode asynchrone et qui met à jour un tableau ou une collection.A race condition exists in an app that is multithreaded or has tasks that execute asynchronously and that updates an array or collection.

    L’exemple suivant utilise un List<T> objet pour remplir une collection de Continent objets.The following example uses a List<T> object to populate a collection of Continent objects. Elle lève une ArgumentOutOfRangeException si l’exemple tente d’afficher les sept éléments dans la collection avant de la collection est entièrement remplie.It throws an ArgumentOutOfRangeException if the example attempts to display the seven items in the collection before the collection is fully populated.

    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 Example
    {
       static List<Continent> continents = new List<Continent>();
       static String 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(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();
          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()
    
    Imports System.Collections.Generic
    Imports System.Threading
    
    Public Class Continent
       Public Property Name As String
       Public Property Population As Integer
       Public Property Area As Decimal  
    End Class
    
    Module Example
       Dim continents As New List(Of Continent)
       Dim msg As String 
          
       Public Sub Main()
          Dim names() As String = { "Africa", "Antarctica", "Asia", 
                                         "Australia", "Europe", "North America",
                                         "South America" }
          ' Populate the list.
          For Each name In names
             Dim th As New Thread(AddressOf PopulateContinents)
             th.Start(name)
          Next              
          Console.WriteLine(msg)
          Console.WriteLine()
    
          ' Display the list.
          For ctr As Integer = 0 To names.Length - 1
             Dim continent = continents(ctr)
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area)
          Next
       End Sub
       
       Private Sub PopulateContinents(obj As Object)
          Dim name As String = obj.ToString()
          msg += String.Format("Adding '{0}' to the list.{1}", name, vbCrLf)
          Dim continent As New Continent()
          continent.Name = name
          ' Sleep to simulate retrieving remaining data.
          Thread.Sleep(50)
          continents.Add(continent)
       End Sub
    End Module
    ' 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, les deux ressources sont accessibles à partir de plusieurs threads :In this case, two resources are accessed from multiple threads:

    • Collection continents.The continents collection. Son List<T>.Add méthode est appelée à partir de plusieurs threads.Its List<T>.Add method is called from multiple threads. En outre, le thread principal ou principal part du principe que la collection est entièrement remplie avec sept éléments lorsqu’il itère au sein de ses membres.In addition, the main or primary thread assumes the collection is fully populated with seven elements when it iterates its members.

    • Le msg chaîne, qui est concaténée à partir de plusieurs threads.The msg string, which is concatenated from multiple threads.

    Pour corriger cette erreur, assurez-vous qu’état partagé est accessible de manière thread-safe, comme suit.To correct the error, ensure that shared state is accessed in a thread-safe way, as follows.

    • Si votre application utilise un objet de tableau ou une collection, envisagez d’utiliser une classe de collection thread-safe, telles que les types dans les System.Collections.Concurrent espace de noms ou le System.Collections.Immutable version hors-bande.if your app uses an array or collection object, consider using a thread-safe collection class, such as the types in the System.Collections.Concurrent namespace or the System.Collections.Immutable out-of-band release.

    • Assurez-vous que l’état partagé (autrement dit, les ressources qui sont accessibles par plusieurs threads) est accessible de manière thread-safe, afin qu’un seul thread à la fois dispose d’un accès exclusif aux ressources.Ensure that shared state (that is, resources that can be accessed by multiple threads) is accessed in a thread-safe way, so that only one thread at a time has exclusive access to the resources. Un grand nombre de classes, telles que CountdownEvent, Interlocked, Monitor, et Mutex, sont disponibles pour synchroniser l’accès aux ressources.A large number of classes, such as CountdownEvent, Interlocked, Monitor, and Mutex, are available to synchronize access to resources. Pour plus d’informations, consultez Threading.For more information, see Threading. En outre, la prise en charge linguistique est disponible via le verrou instruction en langage c# et le SyncLock construire en Visual Basic.In addition, language support is available through the lock statement in C# and the SyncLock construct in Visual Basic.

    Les adresses d’exemple suivantes le ArgumentOutOfRangeException et les autres problèmes à partir de l’exemple précédent.The following example addresses the ArgumentOutOfRangeException and the other issues from the previous example. Il remplace le List<T> de l’objet avec un ConcurrentBag<T> objet pour garantir que les accès à la collection est thread-safe, utilise un CountdownEvent objet pour vous assurer que le thread d’application continue uniquement après les autres threads ont été exécutées et utilise un verrou pour vous assurer que seul un thread peut accéder à la msg variable à la fois.It replaces the List<T> object with a ConcurrentBag<T> object to ensure that access to the collection is thread-safe, uses a CountdownEvent object to ensure that the application thread continues only after other threads have executed, and uses a lock to ensure that only one thread can access the msg variable at a time.

    using System;
    using System.Collections.Concurrent;
    using System.Threading;
    
    public class Continent
    {
       public String Name { get; set; }
       public int Population { get; set; }
       public Decimal Area { get; set; }   
    }
    
    public class Example
    {
       static ConcurrentBag<Continent> continents = new ConcurrentBag<Continent>();
       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(PopulateContinents);
             th.Start(name);
          }              
    
          // Display the list.
          gate.Wait();
          Console.WriteLine(msg);
          Console.WriteLine();
    
          var arr = continents.ToArray();
          for (int ctr = 0; ctr < names.Length; ctr++) {
             var continent = arr[ctr];
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area);
          }
       }
       
       private static void PopulateContinents(Object obj)
       {
          String name = obj.ToString();
          lock(msg) { 
             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(25);
          continents.Add(continent);
          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
    
    Imports System.Collections.Concurrent
    Imports System.Threading
    
    Public Class Continent
       Public Property Name As String
       Public Property Population As Integer
       Public Property Area As Decimal  
    End Class
    
    Module Example
       Dim continents As New ConcurrentBag(Of Continent)
       Dim gate As CountdownEvent
       Dim msg As String = String.Empty
          
       Public Sub Main()
          Dim names() As String = { "Africa", "Antarctica", "Asia", 
                                    "Australia", "Europe", "North America",
                                    "South America" }
          gate = new CountdownEvent(names.Length)
          
          ' Populate the list.
          For Each name In names
             Dim th As New Thread(AddressOf PopulateContinents)
             th.Start(name)
          Next              
    
          ' Display the list.
          gate.Wait()
          Console.WriteLine(msg)
          Console.WriteLine()
    
          For ctr As Integer = 0 To names.Length - 1
             Dim continent = continents(ctr)
             Console.WriteLine("{0}: Area: {1}, Population {2}", 
                               continent.Name, continent.Population,
                               continent.Area)
          Next
       End Sub
       
       Private Sub PopulateContinents(obj As Object)
          Dim name As String = obj.ToString()
          SyncLock msg 
             msg += String.Format("Adding '{0}' to the list.{1}", name, vbCrLf)
          End SyncLock
          Dim continent As New Continent()
          continent.Name = name
          ' Sleep to simulate retrieving remaining data.
          Thread.Sleep(25)
          continents.Add(continent)
          gate.Signal()
       End Sub
    End Module
    ' 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 HRESULT COR_E_ARGUMENTOUTOFRANGE dont la valeur est 0 x 80131502.ArgumentOutOfRangeException uses the HRESULT COR_E_ARGUMENTOUTOFRANGE, which has the value 0x80131502.

Pour obtenir la liste des valeurs initiales des propriétés d’une instance de ArgumentOutOfRangeException, consultez le ArgumentOutOfRangeException constructeurs.For a list of initial property values for an instance of ArgumentOutOfRangeException, see the ArgumentOutOfRangeException constructors.

Constructeurs

ArgumentOutOfRangeException() ArgumentOutOfRangeException() ArgumentOutOfRangeException() ArgumentOutOfRangeException()

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException.Initializes a new instance of the ArgumentOutOfRangeException class.

ArgumentOutOfRangeException(SerializationInfo, StreamingContext) ArgumentOutOfRangeException(SerializationInfo, StreamingContext) ArgumentOutOfRangeException(SerializationInfo, StreamingContext) ArgumentOutOfRangeException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException avec des données sérialisées.Initializes a new instance of the ArgumentOutOfRangeException class with serialized data.

ArgumentOutOfRangeException(String) ArgumentOutOfRangeException(String) ArgumentOutOfRangeException(String) ArgumentOutOfRangeException(String)

Initialise une nouvelle instance de la classe ArgumentOutOfRangeException avec le nom du paramètre ayant provoqué l'exception.Initializes a new instance of the ArgumentOutOfRangeException class with the name of the parameter that causes this exception.

ArgumentOutOfRangeException(String, Exception) ArgumentOutOfRangeException(String, Exception) ArgumentOutOfRangeException(String, 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.Initializes a new instance of the ArgumentOutOfRangeException class with a specified error message and the exception that is the cause of this exception.

ArgumentOutOfRangeException(String, Object, String) ArgumentOutOfRangeException(String, Object, String) ArgumentOutOfRangeException(String, Object, String) 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é.Initializes a new instance of the ArgumentOutOfRangeException class with the parameter name, the value of the argument, and a specified error message.

ArgumentOutOfRangeException(String, String) ArgumentOutOfRangeException(String, String) ArgumentOutOfRangeException(String, String) 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é.Initializes a new instance of the ArgumentOutOfRangeException class with the name of the parameter that causes this exception and a specified error message.

Propriétés

ActualValue ActualValue ActualValue ActualValue

Obtient la valeur de l'argument qui provoque cette exception.Gets the argument value that causes this exception.

Data Data Data Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message 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.Gets the error message and the string representation of the invalid argument value, or only the error message if the argument value is null.

ParamName ParamName ParamName ParamName

Obtient le nom du paramètre qui a provoqué cette exception.Gets the name of the parameter that causes this exception.

(Inherited from ArgumentException)
Source Source Source Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Obtient la méthode qui lève l'exception actuelle.Gets the method that throws the current exception.

(Inherited from Exception)

Méthodes

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() 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.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Définit l'objet SerializationInfo à l'aide de la valeur de l'argument non valide et d'autres informations se rapportant à l'exception.Sets the SerializationInfo object with the invalid argument value and additional exception information.

GetType() GetType() GetType() GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Crée et retourne une chaîne représentant l'exception actuelle.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Événements

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

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.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

S’applique à

Voir aussi