OverflowException Clase

Definición

Excepción que se produce cuando una operación aritmética, de conversión o conversión en un contexto comprobado da como resultado un desbordamiento.

public ref class OverflowException : ArithmeticException
public class OverflowException : ArithmeticException
[System.Serializable]
public class OverflowException : ArithmeticException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class OverflowException : ArithmeticException
type OverflowException = class
    inherit ArithmeticException
[<System.Serializable>]
type OverflowException = class
    inherit ArithmeticException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type OverflowException = class
    inherit ArithmeticException
Public Class OverflowException
Inherits ArithmeticException
Herencia
Herencia
Atributos

Comentarios

Se produce una OverflowException en tiempo de ejecución en las condiciones siguientes:

  • Una operación aritmética genera un resultado que está fuera del intervalo del tipo de datos devuelto por la operación. En el ejemplo siguiente se muestra el OverflowException que produce una operación de multiplicación que desborda los límites del tipo de Int32.

    int value = 780000000;
    checked {
    try {
       // Square the original value.
       int square = value * value;
       Console.WriteLine("{0} ^ 2 = {1}", value, square);
    }
    catch (OverflowException) {
       double square = Math.Pow(value, 2);
       Console.WriteLine("Exception: {0} > {1:E}.",
                         square, Int32.MaxValue);
    } }
    // The example displays the following output:
    //       Exception: 6.084E+17 > 2.147484E+009.
    
    open Checked
    
    let v = 780000000
    try
       // Square the original value.
       let square = v * v
       printfn $"{v} ^ 2 = {square}"
    with :? OverflowException ->
        let square = float v ** 2
        printfn $"Exception: {square} > {Int32.MaxValue:E}."
    // The example displays the following output:
    //       Exception: 6.084E+17 > 2.147484E+009.
    
    Dim value As Integer = 780000000
    Try
       ' Square the original value.
       Dim square As Integer = value * value 
       Console.WriteLine("{0} ^ 2 = {1}", value, square)
    Catch e As OverflowException
       Dim square As Double = Math.Pow(value, 2)
       Console.WriteLine("Exception: {0} > {1:E}.", _
                         square, Int32.MaxValue)
    End Try
    ' The example displays the following output:
    '       Exception: 6.084E+17 > 2.147484E+009.
    
  • Una operación de conversión o conversión intenta realizar una conversión de restricción y el valor del tipo de datos de origen está fuera del intervalo del tipo de datos de destino. En el ejemplo siguiente se muestra el OverflowException que produce el intento de convertir un valor de byte sin signo grande en un valor de byte con signo.

    byte value = 241;
    checked {
    try {
       sbyte newValue = (sbyte) value;
       Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                         value.GetType().Name, value,
                         newValue.GetType().Name, newValue);
    }
    catch (OverflowException) {
       Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue);
    } }
    // The example displays the following output:
    //       Exception: 241 > 127.
    
    open Checked
    
    let value = 241uy
    try
        let newValue = int8 value
        printfn $"Converted the {value.GetType().Name} value {value} to the {newValue.GetType().Name} value {newValue}."
    with :? OverflowException ->
        printfn $"Exception: {value} > {SByte.MaxValue}."
    // The example displays the following output:
    //       Exception: 241 > 127.
    
    Dim value As Byte = 241
    Try
       Dim newValue As SByte = (CSByte(value))
       Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
                         value.GetType().Name, value, _
                         newValue.GetType().Name, newValue)
    Catch e As OverflowException
       Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue)
    End Try                            
    ' The example displays the following output:
    '       Exception: 241 > 127.
    

En cada caso, el resultado de la operación es un valor menor que la propiedad MinValue o mayor que la propiedad MaxValue del tipo de datos resultante de la operación.

Para que la operación aritmética, conversión o conversión inicie una OverflowException, la operación debe producirse en un contexto comprobado. De forma predeterminada, se comprueban las operaciones aritméticas y los desbordamientos en Visual Basic; en C# y F#, no lo son. Si la operación se produce en un contexto no comprobado, el resultado se trunca descartando los bits de orden alto que no caben en el tipo de destino. En el ejemplo siguiente se muestra una conversión no desactivada en C# o F#. Repite el ejemplo anterior en un contexto no comprobado.

byte value = 241;
try {
   sbyte newValue = (sbyte) value;
   Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
                     value.GetType().Name, value,
                     newValue.GetType().Name, newValue);
}
catch (OverflowException) {
   Console.WriteLine("Exception: {0} > {1}.", value, SByte.MaxValue);
}
// The example displays the following output:
//       Converted the Byte value 241 to the SByte value -15.
let value = 241uy
try
    let newValue = int8 value
    printfn $"Converted the {value.GetType().Name} value {value} to the {newValue.GetType().Name} value {newValue}."
with :? OverflowException ->
    printfn $"Exception: {value} > {SByte.MaxValue}."
// The example displays the following output:
//       Converted the Byte value 241 to the SByte value -15.

Las siguientes instrucciones del lenguaje intermedio de Microsoft (MSIL) inician una OverflowException:

  • add.ovf. < > firmados

  • conv.ovf. <escribir>

  • conv.ovf. <para escribir>.un

  • de tipo

  • de tipo

  • newarr

OverflowException usa el COR_E_OVERFLOW HRESULT, que tiene el valor 0x80131516.

Para obtener una lista de valores de propiedad iniciales para una instancia de OverflowException, vea los constructores de OverflowException.

Constructores

OverflowException()

Inicializa una nueva instancia de la clase OverflowException.

OverflowException(SerializationInfo, StreamingContext)
Obsoletos.

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

OverflowException(String)

Inicializa una nueva instancia de la clase OverflowException con un mensaje de error especificado.

OverflowException(String, Exception)

Inicializa una nueva instancia de la clase OverflowException con un mensaje de error especificado y una referencia a la excepción interna que es la causa de esta excepción.

Propiedades

Data

Obtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario 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 de Exception que provocó la excepción actual.

(Heredado de Exception)
Message

Obtiene un mensaje que describe la excepción actual.

(Heredado de Exception)
Source

Obtiene o establece el nombre de la aplicación o el objeto que provoca el error.

(Heredado de Exception)
StackTrace

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

(Heredado de Exception)
TargetSite

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

(Heredado de Exception)

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetBaseException()

Cuando se reemplaza en una clase derivada, devuelve el Exception que es la causa principal de una o varias excepciones posteriores.

(Heredado de Exception)
GetHashCode()

Actúa como función hash predeterminada.

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

Cuando se reemplaza en una clase derivada, establece el SerializationInfo con información sobre la excepción.

(Heredado de Exception)
GetType()

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

(Heredado de Exception)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

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

(Heredado de Exception)

Eventos

SerializeObjectState
Obsoletos.

Se produce cuando se serializa una excepción para crear un objeto de estado de excepción que contiene datos serializados sobre la excepción.

(Heredado de Exception)

Se aplica a

Consulte también