OverflowException Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
< > firmadosconv.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) |