OverflowException Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die Ausnahme, die ausgelöst wird, wenn ein arithmetischer, Umwandlungs- oder Konvertierungsvorgang in einem überprü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
Ein OverflowException wird zur Laufzeit unter den folgenden Bedingungen ausgelöst:
Ein arithmetischer Vorgang erzeugt ein Ergebnis, das sich außerhalb des Bereichs des Datentyps befindet, der vom Vorgang zurückgegeben wird. Das folgende Beispiel veranschaulicht die OverflowException, die durch einen Multiplikationsvorgang ausgelöst wird, 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 durchzuführen, und der Wert des Quelldatentyps liegt außerhalb des Bereichs des Zieldatentyps. Im folgenden Beispiel wird die OverflowException veranschaulicht, die 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.
Damit der arithmetische, Umwandlungs- oder Konvertierungsvorgang einen OverflowExceptionauslöst, 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 abgeschnitten, indem alle Bits in hoher Reihenfolge verworfen werden, die nicht in den Zieltyp passen. 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 MSIL-Anweisungen (Microsoft Intermediate Language) lösen eine OverflowExceptionaus:
add.ovf.
<signierten>conv.ovf.
<zum Eingeben von>conv.ovf.
<eingeben>.un
mul.ovf.
<Typ>sub.ovf.
<Typ>newarr
OverflowException verwendet die HRESULT-COR_E_OVERFLOW, die den Wert 0x80131516 hat.
Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von OverflowExceptionfinden Sie in den OverflowException-Konstruktoren.
Konstruktoren
OverflowException() |
Initialisiert eine neue Instanz der OverflowException Klasse. |
OverflowException(SerializationInfo, StreamingContext) |
Veraltet.
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 die Ursache dieser Ausnahme ist. |
Eigenschaften
Data |
Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen. (Geerbt von Exception) |
HelpLink |
Dient zum Abrufen oder Festlegen eines Links zur Hilfedatei, die dieser Ausnahme zugeordnet ist. (Geerbt von Exception) |
HResult |
Dient zum Abrufen oder Festlegen von HRESULT, einem codierten numerischen Wert, der einer bestimmten Ausnahme zugewiesen ist. (Geerbt von Exception) |
InnerException |
Ruft die Exception Instanz ab, die die aktuelle Ausnahme verursacht hat. (Geerbt von Exception) |
Message |
Ruft eine Nachricht ab, die die aktuelle Ausnahme beschreibt. (Geerbt von Exception) |
Source |
Dient zum Abrufen oder Festlegen des Namens der Anwendung oder des Objekts, das den Fehler verursacht. (Geerbt von Exception) |
StackTrace |
Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames im Aufrufstapel 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 dem aktuellen Objekt entspricht. (Geerbt von Object) |
GetBaseException() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Exception zurückgegeben, die die Ursache einer oder mehrerer nachfolgenden Ausnahmen ist. (Geerbt von Exception) |
GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Veraltet.
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird die SerializationInfo mit Informationen zur Ausnahme festgelegt. (Geerbt von Exception) |
GetType() |
Ruft den Laufzeittyp der aktuellen Instanz ab. (Geerbt von Exception) |
MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
ToString() |
Erstellt und gibt eine Zeichenfolgendarstellung der aktuellen Ausnahme zurück. (Geerbt von Exception) |
Ereignisse
SerializeObjectState |
Veraltet.
Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmestatusobjekt zu erstellen, das serialisierte Daten zu der Ausnahme enthält. (Geerbt von Exception) |