OverflowException Klasse

Definition

Die Ausnahme, die ausgelöst wird, wenn ein Arithmetik-, Umwandlungs- oder Konvertierungsvorgang in einem geprüften Kontext zu einem Überlauf führt.

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
Vererbung
Vererbung
Attribute

Hinweise

Eine OverflowException wird zur Laufzeit unter den folgenden Bedingungen ausgelöst:

  • Eine arithmetische Operation erzeugt ein Ergebnis, das außerhalb des Bereichs des datentyps liegt, der von der Operation zurückgegeben wird. Das folgende Beispiel veranschaulicht die , die von einem Multiplikationsvorgang ausgelöst wird, der die Grenzen OverflowException des Typs Int32 überläuft.

    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.
    
  • Bei einem Umwandlungs- oder Konvertierungsvorgang wird versucht, eine schmale Konvertierung durchzuführen, und der Wert des Quelldatentyps liegt außerhalb des Bereichs des Zieldatentyps. Das folgende Beispiel veranschaulicht die , die durch den Versuch ausgelöst wird, einen großen Bytewert ohne Vorzeichen in einen OverflowException Bytewert mit Vorzeichen zu konvertieren.

    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.
    

In jedem Fall ist das Ergebnis des Vorgangs ein Wert, der kleiner als die -Eigenschaft oder größer als die -Eigenschaft des Datentyps ist, der aus MinValue MaxValue dem Vorgang resultiert.

Damit der Arithmetik-, Umwandlungs- oder Konvertierungsvorgang eine auslösen kann, muss der Vorgang OverflowException in einem überprüften Kontext erfolgen. Standardmäßig werden arithmetische Operationen und Überläufe in Visual Basic aktiviert. in C# nicht. Wenn der Vorgang in einem nicht überprüften Kontext auftritt, wird das Ergebnis abgeschnitten, indem alle wichtigen Bits verworfen werden, die nicht in den Zieltyp passen. Im folgenden Beispiel wird eine solche nicht überprüfte Konvertierung in C# veranschaulicht. Das vorherige Beispiel wird in einem nicht überprüften Kontext wiederholt.

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.

Die folgenden MSIL-Anweisungen (Microsoft Intermediate Language) löst eine OverflowException aus:

  • add.ovf. <signed>

  • conv.ovf. <to type>

  • conv.ovf. <to type> .un

  • mul.ovf. <type>

  • sub.ovf. <type>

  • newarr

OverflowException verwendet die HRESULT-COR_E_OVERFLOW, die den Wert 0x80131516.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von OverflowException, finden Sie unter den OverflowException Konstruktoren.

Konstruktoren

OverflowException()

Initialisiert eine neue Instanz der OverflowException-Klasse.

OverflowException(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der OverflowException-Klasse mit serialisierten Daten.

OverflowException(String)

Initialisiert eine neue Instanz der OverflowException-Klasse mit einer angegebenen Fehlermeldung.

OverflowException(String, Exception)

Initialisiert eine neue Instanz der OverflowException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.

Eigenschaften

Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.

(Geerbt von Exception)
HResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.

(Geerbt von Exception)
InnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Meldung ab, mit der die aktuelle Ausnahme beschrieben wird.

(Geerbt von Exception)
Source

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist.

(Geerbt von Exception)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.

(Geerbt von Exception)

Ereignisse

SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.

(Geerbt von Exception)

Gilt für

Siehe auch