OverflowException Classe

Definição

A exceção que é gerada quando uma operação aritmética, projeção ou de conversão em um contexto verificado resulta em um estouro.The exception that is thrown when an arithmetic, casting, or conversion operation in a checked context results in an overflow.

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

Comentários

Um OverflowException é lançado em tempo de execução sob as seguintes condições:An OverflowException is thrown at run time under the following conditions:

  • Uma operação aritmética produz um resultado que está fora do intervalo do tipo de dados retornado pela operação.An arithmetic operation produces a result that is outside the range of the data type returned by the operation. O exemplo a seguir ilustra OverflowException o que é gerado por uma operação de multiplicação que estoura os limites Int32 do tipo.The following example illustrates the OverflowException that is thrown by a multiplication operation that overflows the bounds of the Int32 type.

    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.
    
    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.
    
  • Uma conversão ou operação de conversão tenta executar uma conversão de restrição e o valor do tipo de dados de origem está fora do intervalo do tipo de dados de destino.A casting or conversion operation attempts to perform a narrowing conversion, and the value of the source data type is outside the range of the target data type. O exemplo a seguir ilustra OverflowException o que é lançado pela tentativa de converter um valor de byte não assinado grande em um valor de byte assinado.The following example illustrates the OverflowException that is thrown by the attempt to convert a large unsigned byte value to a signed byte value.

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

Em cada caso, o resultado da operação é um valor menor que a MinValue propriedade ou maior que a MaxValue Propriedade do tipo de dados resultante da operação.In each case, the result of the operation is a value that is less than the MinValue property or greater than the MaxValue property of the data type that results from the operation.

Para a operação de conversão, aritmética ou aritmético para lançar um OverflowException, a operação deve ocorrer em um contexto marcado.For the arithmetic, casting, or conversion operation to throw an OverflowException, the operation must occur in a checked context. Por padrão, operações aritméticas e estouros no Visual Basic são verificadas; no C#, eles não são.By default, arithmetic operations and overflows in Visual Basic are checked; in C#, they are not. Se a operação ocorrer em um contexto desmarcado, o resultado será truncado descartando quaisquer bits de ordem superior que não caibam no tipo de destino.If the operation occurs in an unchecked context, the result is truncated by discarding any high-order bits that do not fit into the destination type. O exemplo a seguir ilustra uma conversão desmarcada em C#.The following example illustrates such an unchecked conversion in C#. Ele repete o exemplo anterior em um contexto desmarcado.It repeats the previous example in an unchecked context.

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.

As seguintes instruções da MSIL (Microsoft Intermediate Language OverflowException) lançam um:The following Microsoft intermediate language (MSIL) instructions throw an OverflowException:

  • add.ovf. <signed>add.ovf. <signed>

  • conv.ovf. paradigitar<>conv.ovf. <to type>

  • conv.ovf. paradigitar<>.unconv.ovf. <to type> .un

  • mul.ovf. <type>mul.ovf. <type>

  • sub.ovf. <type>sub.ovf. <type>

  • newarr

OverflowExceptionusa o HRESULT COR_E_OVERFLOW, que tem o valor 0x80131516.OverflowException uses the HRESULT COR_E_OVERFLOW, which has the value 0x80131516.

Para obter uma lista de valores de propriedade inicial para uma instância do OverflowException, consulte o OverflowException construtores.For a list of initial property values for an instance of OverflowException, see the OverflowException constructors.

Construtores

OverflowException()

Inicializa uma nova instância da classe OverflowException.Initializes a new instance of the OverflowException class.

OverflowException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe OverflowException com dados serializados.Initializes a new instance of the OverflowException class with serialized data.

OverflowException(String)

Inicializa uma nova instância da classe OverflowException com uma mensagem de erro especificada.Initializes a new instance of the OverflowException class with a specified error message.

OverflowException(String, Exception)

Inicializa uma nova instância da classe OverflowException com uma mensagem de erro especificada e uma referência à exceção interna que é a causa da exceção.Initializes a new instance of the OverflowException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Propriedades

Data

Obtém uma coleção de pares de chave/valor que fornecem informações adicionais definidas pelo usuário sobre a exceção.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Herdado de Exception)
HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.Gets or sets a link to the help file associated with this exception.

(Herdado de Exception)
HResult

Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Herdado de Exception)
InnerException

Obtém a instância Exception que causou a exceção atual.Gets the Exception instance that caused the current exception.

(Herdado de Exception)
Message

Obtém uma mensagem que descreve a exceção atual.Gets a message that describes the current exception.

(Herdado de Exception)
Source

Obtém ou define o nome do aplicativo ou objeto que causa o erro.Gets or sets the name of the application or the object that causes the error.

(Herdado de Exception)
StackTrace

Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.Gets a string representation of the immediate frames on the call stack.

(Herdado de Exception)
TargetSite

Obtém o método que gerou a exceção atual.Gets the method that throws the current exception.

(Herdado de Exception)

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetBaseException()

Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Herdado de Exception)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Quando substituído em uma classe derivada, define o SerializationInfo com informações sobre a exceção.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Herdado de Exception)
GetType()

Obtém o tipo de tempo de execução da instância atual.Gets the runtime type of the current instance.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Cria e retorna uma representação de cadeia de caracteres da exceção atual.Creates and returns a string representation of the current exception.

(Herdado de Exception)

Eventos

SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Herdado de Exception)

Aplica-se a

Veja também