OverflowException Klasa

Definicja

Wyjątek, który jest generowany, gdy operacja arytmetyczna, rzutowania lub konwersji w zaznaczonym kontekście powoduje przepełnienie.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
Dziedziczenie
Atrybuty

Uwagi

OverflowException jest generowany w czasie wykonywania w następujących warunkach:An OverflowException is thrown at run time under the following conditions:

  • Operacja arytmetyczna generuje wynik, który jest poza zakresem typu danych zwracanego przez operację.An arithmetic operation produces a result that is outside the range of the data type returned by the operation. Poniższy przykład ilustruje OverflowException, który jest generowany przez operację mnożenia, która przekracza granice typu Int32.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.
    
  • Operacja rzutowania lub konwersji próbuje wykonać konwersję zawężania, a wartość typu danych źródłowych znajduje się poza zakresem docelowego typu danych.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. Poniższy przykład ilustruje OverflowException, który jest generowany przez próbę przekonwertowania dużej wartości bajtu bez znaku na wartość ze znakiem.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.
    

W każdym przypadku wynik operacji jest wartością, która jest mniejsza niż Właściwość MinValue lub większa niż Właściwość MaxValue typu danych będącej wynikiem operacji.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.

Dla operacji arytmetycznej, rzutowania lub konwersji w celu wygenerowania OverflowExceptionoperacja musi wystąpić w kontekście.For the arithmetic, casting, or conversion operation to throw an OverflowException, the operation must occur in a checked context. Domyślnie operacje arytmetyczne i przepełnienia w Visual Basic są zaznaczone; w C#programie nie są.By default, arithmetic operations and overflows in Visual Basic are checked; in C#, they are not. Jeśli operacja występuje w kontekście niesprawdzonym, wynik zostanie obcięty przez odrzucenie wszelkich bitów o dużej kolejności, które nie mieszczą się w typie docelowym.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. Poniższy przykład ilustruje takie niesprawdzoną konwersję w C#.The following example illustrates such an unchecked conversion in C#. Powtórzy poprzedni przykład w niesprawdzonym kontekście.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.

Następujące instrukcje języka pośredniego firmy Microsoft (MSIL) zwracają OverflowException:The following Microsoft intermediate language (MSIL) instructions throw an OverflowException:

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

  • conv.ovf. <do typu >conv.ovf. <to type>

  • conv.ovf. <do typu > .unconv.ovf. <to type> .un

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

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

  • newarr

OverflowException używa COR_E_OVERFLOW HRESULT, który ma wartość 0x80131516.OverflowException uses the HRESULT COR_E_OVERFLOW, which has the value 0x80131516.

Aby uzyskać listę początkowe wartości właściwości wystąpienia OverflowException, zobacz OverflowException konstruktorów.For a list of initial property values for an instance of OverflowException, see the OverflowException constructors.

Konstruktory

OverflowException()

Inicjuje nowe wystąpienie klasy OverflowException klasy.Initializes a new instance of the OverflowException class.

OverflowException(SerializationInfo, StreamingContext)

Inicjuje nowe wystąpienie klasy OverflowException klasy z serializowanych danych.Initializes a new instance of the OverflowException class with serialized data.

OverflowException(String)

Inicjuje nowe wystąpienie klasy OverflowException klasy przy użyciu określonego komunikatu o błędzie.Initializes a new instance of the OverflowException class with a specified error message.

OverflowException(String, Exception)

Inicjuje nowe wystąpienie klasy OverflowException klasy przy użyciu określonego komunikatu o błędzie i odwołania do wewnętrznego wyjątku, który jest przyczyną tego wyjątku.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.

Właściwości

Data

Pobiera kolekcję par klucz/wartość, które zawierają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Odziedziczone po Exception)
HelpLink

Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem.Gets or sets a link to the help file associated with this exception.

(Odziedziczone po Exception)
HResult

Pobiera lub ustawia wartość HRESULT, kodowane wartości liczbowe przypisane do określonego wyjątku.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Odziedziczone po Exception)
InnerException

Pobiera wystąpienie Exception, które spowodowało wyjątek bieżący.Gets the Exception instance that caused the current exception.

(Odziedziczone po Exception)
Message

Pobiera komunikat, który opisuje bieżący wyjątek.Gets a message that describes the current exception.

(Odziedziczone po Exception)
Source

Pobiera lub ustawia nazwę aplikacji lub obiekt, który powoduje błąd.Gets or sets the name of the application or the object that causes the error.

(Odziedziczone po Exception)
StackTrace

Pobiera ciąg reprezentujący bezpośrednie ramki w stosie wywołań.Gets a string representation of the immediate frames on the call stack.

(Odziedziczone po Exception)
TargetSite

Pobiera metodę, która zgłasza bieżący wyjątek.Gets the method that throws the current exception.

(Odziedziczone po Exception)

Metody

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetBaseException()

Gdy jest zastępowany w klasie pochodnej, zwraca Exception, który jest główną przyczyną jednego lub kilku kolejnych wyjątków.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Odziedziczone po Exception)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetObjectData(SerializationInfo, StreamingContext)

Gdy jest zastępowany w klasie pochodnej, ustawia SerializationInfo z informacjami o wyjątku.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Odziedziczone po Exception)
GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.Gets the runtime type of the current instance.

(Odziedziczone po Exception)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.Creates and returns a string representation of the current exception.

(Odziedziczone po Exception)

Zdarzenia

SerializeObjectState

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku, który zawiera serializowane dane dotyczące wyjątku.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Odziedziczone po Exception)

Dotyczy

Zobacz też