Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
OverflowException-Klasse
Die Ausnahme, die ausgelöst wird, wenn eine arithmetische, Umwandlungs- oder Konvertierungsoperation in einem geprüften Kontext einen Überlauf verursacht.
System.Exception
System.SystemException
System.ArithmeticException
System.OverflowException
Assembly: mscorlib (in mscorlib.dll)
Der OverflowException-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
OverflowException() | Initialisiert eine neue Instanz der OverflowException-Klasse. |
|
OverflowException(String) | Initialisiert eine neue Instanz der OverflowException-Klasse mit einer angegebenen Fehlermeldung. |
|
OverflowException(SerializationInfo, StreamingContext) | Initialisiert eine neue Instanz der OverflowException-Klasse mit serialisierten Daten. |
|
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. |
| Name | Beschreibung | |
|---|---|---|
|
Data | Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zu der Ausnahme bereitstellen. (Von Exception geerbt.) |
|
HelpLink | Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest. (Von Exception geerbt.) |
|
HResult | Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist. (Von Exception geerbt.) |
|
InnerException | Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursachte. (Von Exception geerbt.) |
|
Message | Ruft eine Meldung ab, die die aktuelle Ausnahme beschreibt. (Von Exception geerbt.) |
|
Source | Gibt den Namen der Anwendung oder des Objekts zurück, das den Fehler verursacht hat, oder legt diesen fest. (Von Exception geerbt.) |
|
StackTrace | Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab. (Von Exception geerbt.) |
|
TargetSite | Ruft die Methode ab, die die aktuelle Ausnahme auslöst. (Von Exception geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetBaseException | Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die ursprüngliche Ursache für eine oder mehrere nachfolgende Ausnahmen ist. (Von Exception geerbt.) |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetObjectData | Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest. (Von Exception geerbt.) |
|
GetType |
Ruft den Laufzeittyp der aktuellen Instanz ab.
(Von Exception geerbt.) In XNA Framework 3.0 wird dieser Member von Object.GetType(). In wird dieser Member von Object.GetType(). |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
ToString | Erstellt eine Zeichenfolgenentsprechung der aktuellen Ausnahme und gibt diese zurück. (Von Exception geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
SerializeObjectState | Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt zu erstellen, das serialisierte Daten für die Ausnahme enthält. (Von Exception geerbt.) |
Eine OverflowException wird bei Laufzeit bei folgenden Bedingungen ausgelöst:
-
Eine arithmetische Operation führt zu einem Ergebnis, das außerhalb des Datentypbereichs liegt, der vom Vorgang zurückgegeben wurde. Im folgenden Beispiel wird die OverflowException veranschaulicht, die von einer Multiplikationsoperation ausgelöst wird, die über die Grenzen des Int32-Typs überläuft.
int value = 780000000; checked { try { // Square the original value. int square = value * value; Console.WriteLine("{0} ^ 3 = {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.
-
Eine Umwandlungs- oder Konvertierungsoperation versucht, eine einschränkende Konvertierung auszufü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 Bytewert ohne Vorzeichen in einen 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.
In jedem Fall ist das Ergebnis der Operation ein Wert, der kleiner als die MinValue-Eigenschaft oder größer als die MaxValue-Eigenschaft des Datentyps ist, der sich aus der Operation ergibt.
Damit die Arithmetik-, Umwandlungs- oder Konvertierungsoperation eine OverflowException auslöst, muss die Operation in einem überprüften Kontext auftreten. Standardmäßig werden arithmetische Operationen und Überläufe in Visual Basic überprüft; in C# erfolgt keine Überprüfung. Wenn die Operation in einem nicht überprüften Kontext auftritt, wird das Ergebnis abgeschnitten, indem alle höherwertigen Bits ignoriert werden, die nicht in den Zieltyp passen. Im folgenden Beispiel wird eine solche nicht überprüfte Konvertierung in C# veranschaulicht. Dies ist eine Wiederholung des vorherigen Beispiels in einem nicht überprüften 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.
Die folgenden MSIL-Anweisungen (Microsoft Intermediate Language) lösen eine OverflowException aus:
-
add.ovf. <mit Vorzeichen>
-
conv.ovf. <in Typ>
-
conv.ovf. <in Typ> .un
-
mul.ovf. <type>
-
sub.ovf. <type>
-
newarr
OverflowException verwendet HRESULT COR_E_OVERFLOW mit dem Wert 0x80131516.
Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von OverflowException finden Sie unter OverflowException-Konstruktoren.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.