Leer en inglés

Compartir a través de


ArgumentOutOfRangeException Clase

Definición

Excepción que se produce cuando el valor de un argumento está fuera del intervalo de valores permitido definido por el método invocado.

C#
public class ArgumentOutOfRangeException : ArgumentException
C#
[System.Serializable]
public class ArgumentOutOfRangeException : ArgumentException
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentOutOfRangeException : ArgumentException
Herencia
ArgumentOutOfRangeException
Herencia
ArgumentOutOfRangeException
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se define una clase que contiene información sobre un invitado invitado. Si el invitado es menor que 21, se produce una ArgumentOutOfRangeException excepción.

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}";
}

Comentarios

Se produce una ArgumentOutOfRangeException excepción cuando se invoca un método y al menos uno de los argumentos pasados al método no null es y contiene un valor no válido que no es un miembro del conjunto de valores esperado para el argumento. La ParamName propiedad identifica el argumento no válido y la ActualValue propiedad, si hay un valor presente, identifica el valor no válido.

Normalmente, se produce un ArgumentOutOfRangeException error de desarrollador. En lugar de controlar la excepción en un try/catch bloque, debe eliminar la causa de la excepción o, si el usuario devuelve el argumento o la llamada al método antes de pasarlos al método que produce la excepción, debe validar los argumentos antes de pasarlos al método .

ArgumentOutOfRangeException se usa ampliamente por:

Las condiciones en las que se produce una ArgumentOutOfRangeException excepción incluyen lo siguiente:

  • Está recuperando el miembro de una colección por su número de índice y el número de índice no es válido.

    Esta es la causa más común de una ArgumentOutOfRangeException excepción. Normalmente, el número de índice no es válido por uno de los cuatro motivos:

    1. La colección no tiene miembros y el código supone que sí. En el ejemplo siguiente se intenta recuperar el primer elemento de una colección que no tiene elementos:

      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
      

      Para evitar la excepción, compruebe si la propiedad de Count la colección es mayor que cero antes de intentar recuperar los miembros, como hace el siguiente fragmento de código.

      C#
      if (list.Count > 0)
         Console.WriteLine("The first item: '{0}'", list[0]);
      
    2. En algunos casos, la excepción puede producirse porque está intentando agregar un miembro a una colección mediante un índice que no existe, en lugar de llamar al método , Addque existe para este propósito. En el ejemplo siguiente se intenta agregar un elemento a una colección mediante un índice inexistente en lugar de llamar al List<T>.Add método .

      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()
      

      El fragmento de código siguiente corrige este error:

      C#
      var squares = new List<int>();
      for (int ctr = 0; ctr < numbers.Count; ctr++)
         squares.Add((int) Math.Pow(numbers[ctr], 2));
      
    3. Está intentando recuperar un elemento cuyo índice es negativo. Esto suele ocurrir porque ha buscado una colección para el índice de un elemento determinado y ha asumido erróneamente que la búsqueda es correcta. En el ejemplo siguiente, la llamada al List<T>.FindIndex(Predicate<T>) método no encuentra una cadena igual a "Z" y, por tanto, devuelve -1. Sin embargo, se trata de un valor de índice no válido.

      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
      

      Para evitar la excepción, compruebe que la búsqueda se realiza correctamente asegurándose de que el índice devuelto es mayor o igual que cero antes de intentar recuperar el elemento de la colección, como hace el siguiente fragmento de código.

      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. Está intentando recuperar un elemento cuyo índice es igual al valor de la propiedad de Count la colección, como se muestra en el ejemplo siguiente.

      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
      

      Dado que las colecciones de .NET usan la indexación de base cero, el primer elemento de la colección está en el índice 0 y el último elemento está en el índice Count - 1. Puede eliminar el error asegurándose de tener acceso al último elemento en el índice Count - 1, como hace el código siguiente.

      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]);
      
  • Está intentando realizar una operación de cadena llamando a un método de manipulación de cadenas y el índice inicial no existe en la cadena.

    Las sobrecargas de métodos como String.Compare, , , String.IndexOfString.InsertString.LastIndexOfAnyIndexOfAnyString.LastIndexOfString.CompareOrdinalo RemoveString.Substring que permiten especificar el índice inicial de la operación requieren que el índice sea una posición válida dentro de la cadena. Los índices válidos van de 0 a String.Length - 1.

    Hay cuatro causas comunes de esta ArgumentOutOfRangeException excepción:

    1. Está trabajando con una cadena vacía o String.Empty. Dado que su String.Length propiedad devuelve 0, cualquier intento de manipularlo por índice produce una ArgumentOutOfRangeException excepción. En el ejemplo siguiente, se define un GetFirstCharacter método que devuelve el primer carácter de una cadena. Si la cadena está vacía, ya que la cadena final pasada al método es , el método produce una ArgumentOutOfRangeException excepción.

      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()
      

      Puede eliminar la excepción probando si la cadena String.Length es mayor que cero o llamando al IsNullOrEmpty método para asegurarse de que la cadena no null es o está vacía. El fragmento de código siguiente hace lo último. En este caso, si la cadena es o está null vacía, el GetFirstCharacter método devuelve U+0000.

      C#
      static char GetFirstCharacter(string s)
      {
          if (string.IsNullOrEmpty(s))
              return '\u0000';
          else
              return s[0];
      }
      
    2. Está manipulando una cadena en función de la posición de una subcadena dentro de esa cadena y no ha podido determinar si la subcadena se encontró realmente.

      En el ejemplo siguiente se extrae la segunda palabra de una frase de dos palabras. Produce una ArgumentOutOfRangeException excepción si la frase consta de una sola palabra y, por tanto, no contiene un carácter de espacio incrustado. Esto ocurre porque la llamada al String.IndexOf(String) método devuelve -1 para indicar que se produjo un error en la búsqueda y, a continuación, este valor no válido se pasa al String.Substring(Int32) método .

      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()
      

      Para eliminar la excepción, valide el valor devuelto por el método de búsqueda de cadenas antes de llamar al método de manipulación de cadenas.

      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. Ha intentado extraer una subcadena que está fuera del intervalo de la cadena actual.

      Los métodos que extraen subcadenas requieren que especifique la posición inicial de la subcadena y, para las subcadenas que no continúan al final de la cadena, el número de caracteres de la subcadena. Tenga en cuenta que no es el índice del último carácter de la subcadena.

      Normalmente se produce una ArgumentOutOfRangeException excepción en este caso porque ha calculado incorrectamente el número de caracteres de la subcadena. Si usa un método de búsqueda como String.IndexOf para identificar las posiciones inicial y final de una subcadena:

      • Si el carácter de la posición final devuelta por String.IndexOf se va a incluir en la subcadena, la posición final de la subcadena la da la fórmula.

        endIndex - startIndex + 1
        
      • Si el carácter de la posición final devuelta por String.IndexOf se va a excluir de la subcadena, la posición final de la subcadena la da la fórmula.

        endIndex - startIndex
        

        En el ejemplo siguiente se define un FindWords método que usa el String.IndexOfAny(Char[], Int32) método para identificar caracteres de espacio y signos de puntuación en una cadena y devuelve una matriz que contiene las palabras encontradas en la cadena.

        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'
        
  • Ha pasado un número negativo a un método con un argumento que solo requiere números positivos y cero, o bien ha pasado un número negativo o cero a un método con un argumento que solo requiere números positivos.

    Por ejemplo, el Array.CreateInstance(Type, Int32, Int32, Int32) método requiere que especifique el número de elementos de cada dimensión de una matriz bidimensional; los valores válidos para cada dimensión pueden oscilar entre 0 y Int32.MaxValue. Pero dado que el argumento de dimensión del ejemplo siguiente tiene un valor negativo, el método produce una ArgumentOutOfRangeException excepción.

    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
    

    Para corregir el error, asegúrese de que el valor del argumento no válido no es negativo. Para ello, proporcione un valor válido, como hace el fragmento de código siguiente.

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

    También puede validar la entrada y, si no es válida, realizar alguna acción. El fragmento de código siguiente muestra un mensaje de error en lugar de llamar al método .

    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);
    }
    
  • Existe una condición de carrera en una aplicación multiproceso o que tiene tareas que se ejecutan de forma asincrónica y que actualizan una matriz o colección.

    En el ejemplo siguiente se usa un List<T> objeto para rellenar una colección de Continent objetos . Produce un ArgumentOutOfRangeException si el ejemplo intenta mostrar los siete elementos de la colección antes de que la colección se rellene por completo.

    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()
    

    En este caso, se accede a dos recursos desde varios subprocesos:

    • La colección continents. Se llama a su List<T>.Add método desde varios subprocesos. Además, el subproceso principal o principal supone que la colección se rellena completamente con siete elementos cuando itera sus miembros.

    • Cadena msg , que se concatena desde varios subprocesos.

    Para corregir el error, asegúrese de que se accede al estado compartido de forma segura para subprocesos, como se indica a continuación.

    • Si la aplicación usa una matriz o un objeto de colección, considere la posibilidad de usar una clase de colección segura para subprocesos, como los tipos del System.Collections.Concurrent espacio de nombres o la System.Collections.Immutable versión fuera de banda.

    • Asegúrese de que el estado compartido (es decir, los recursos a los que pueden acceder varios subprocesos) se accedan de forma segura para subprocesos, de modo que solo un subproceso a la vez tenga acceso exclusivo a los recursos. Hay un gran número de clases, como CountdownEvent, Interlocked, Monitory Mutex, disponibles para sincronizar el acceso a los recursos. Para obtener más información, consulte Subprocesos. Además, la compatibilidad con lenguajes está disponible a través de la instrucción lock en C# y la construcción SyncLock en Visual Basic.

    En el ejemplo siguiente se abordan los ArgumentOutOfRangeException problemas y los demás del ejemplo anterior. Reemplaza el List<T> objeto por un ConcurrentBag<T> objeto para asegurarse de que el acceso a la colección es seguro para subprocesos, usa un CountdownEvent objeto para asegurarse de que el subproceso de la aplicación continúa solo después de que se hayan ejecutado otros subprocesos y use un bloqueo para asegurarse de que solo un subproceso pueda tener acceso a la msg variable a la vez.

    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 usa el COR_E_ARGUMENTOUTOFRANGE HRESULT, que tiene el valor 0x80131502.

Para obtener una lista de valores de propiedad iniciales de una instancia de ArgumentOutOfRangeException, consulte el ArgumentOutOfRangeException constructores.

Constructores

ArgumentOutOfRangeException()

Inicializa una nueva instancia de la clase ArgumentOutOfRangeException.

ArgumentOutOfRangeException(SerializationInfo, StreamingContext)
Obsoletos.

Inicializa una nueva instancia de la clase ArgumentOutOfRangeException con datos serializados.

ArgumentOutOfRangeException(String)

Inicializa una nueva instancia de la clase ArgumentOutOfRangeException con el nombre del parámetro que causa esta excepción.

ArgumentOutOfRangeException(String, Exception)

Inicializa una nueva instancia de la clase ArgumentOutOfRangeException con el mensaje de error especificado y la excepción que causó esta excepción.

ArgumentOutOfRangeException(String, Object, String)

Inicializa una nueva instancia de la clase ArgumentOutOfRangeException con el nombre del parámetro, el valor del argumento y el mensaje de error especificados.

ArgumentOutOfRangeException(String, String)

Inicializa una nueva instancia de la clase ArgumentOutOfRangeException con el nombre del parámetro que provoca esta excepción y un mensaje de error especificados.

Propiedades

ActualValue

Obtiene el valor del argumento que causa esta excepción.

Data

Obtiene una colección de pares clave/valor que proporciona información definida por el usuario adicional sobre la excepción.

(Heredado de Exception)
HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.

(Heredado de Exception)
HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.

(Heredado de Exception)
InnerException

Obtiene la instancia Exception que produjo la excepción actual.

(Heredado de Exception)
Message

Obtiene el mensaje de error y la representación de cadena del valor del argumento no válido. Si el valor del argumento es nulo, obtiene sólo el mensaje de error.

ParamName

Obtiene el nombre del parámetro que causa esta excepción.

(Heredado de ArgumentException)
Source

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.

(Heredado de Exception)
StackTrace

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas.

(Heredado de Exception)
TargetSite

Obtiene el método que produjo la excepción actual.

(Heredado de Exception)

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetBaseException()

Cuando se invalida en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores.

(Heredado de Exception)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Establece el objeto SerializationInfo con el valor del argumento no válido e información adicional de la excepción.

GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Establece el objeto SerializationInfo con el nombre del parámetro y la información adicional de la excepción.

(Heredado de ArgumentException)
GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.

(Heredado de Exception)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ThrowIfEqual<T>(T, T, String)

Produce si ArgumentOutOfRangeExceptionvalue es igual a other.

ThrowIfGreaterThan<T>(T, T, String)

Produce si ArgumentOutOfRangeExceptionvalue es mayor que other.

ThrowIfGreaterThanOrEqual<T>(T, T, String)

Produce si ArgumentOutOfRangeExceptionvalue es mayor o igual que other.

ThrowIfLessThan<T>(T, T, String)

Produce si ArgumentOutOfRangeExceptionvalue es menor que other.

ThrowIfLessThanOrEqual<T>(T, T, String)

Produce si ArgumentOutOfRangeExceptionvalue es menor o igual que other.

ThrowIfNegative<T>(T, String)

Produce un ArgumentOutOfRangeException si value es negativo.

ThrowIfNegativeOrZero<T>(T, String)

Produce si ArgumentOutOfRangeExceptionvalue es negativo o cero.

ThrowIfNotEqual<T>(T, T, String)

Produce si ArgumentOutOfRangeExceptionvalue no es igual a other.

ThrowIfZero<T>(T, String)

Produce un ArgumentOutOfRangeException si value es cero.

ToString()

Crea y devuelve una representación de cadena de la excepción actual.

(Heredado de Exception)

Eventos

SerializeObjectState
Obsoletos.

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.

(Heredado de Exception)

Se aplica a

Producto Versiones
.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

Consulte también