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:

  • Ein arithmetisches Vorgang erzeugt ein Ergebnis, das außerhalb des Vom Vorgang zurückgegebenen Datentyps liegt. Im folgenden Beispiel wird dies OverflowException durch einen Multiplikationsvorgang veranschaulicht, der die Grenzen des Int32 Typs ü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.
    
    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.
    
  • Ein Umwandlungs- oder Konvertierungsvorgang versucht, eine schmale Konvertierung auszuführen, und der Wert des Quelldatentyps befindet sich außerhalb des Bereichs des Zieldatentyps. Im folgenden Beispiel wird veranschaulicht, dass das OverflowException durch den Versuch ausgelöst wird, einen großen nicht signierten Bytewert in einen signierten Bytewert 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.
    
    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.
    

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

Für den Arithmetik-, Casting- oder Konvertierungsvorgang zum Auslösen eines OverflowExceptionVorgangs muss der Vorgang in einem überprüften Kontext auftreten. Standardmäßig werden arithmetische Vorgänge und Überläufe in Visual Basic überprüft; in C# und F# sind sie nicht. Wenn der Vorgang in einem deaktivierten Kontext auftritt, wird das Ergebnis durch Verwerfen von Hochreihenbits, die nicht in den Zieltyp passen, abgeschnitten. Im folgenden Beispiel wird eine solche nicht aktivierte Konvertierung in C# oder F# veranschaulicht. Es wiederholt das vorherige Beispiel in einem deaktivierten Kontext.

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.

Die folgenden Microsoft-Zwischensprache (MSIL)-Anweisungen lösen eine OverflowException:

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

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