StackOverflowException Klasse
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

StackOverflowException-Klasse

 

Die Ausnahme, die bei einem Überlauf des Ausführungsstapels durch zu viele geschachtelte Methodenaufrufe ausgelöst wird. Diese Klasse kann nicht vererbt werden.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Exception
    System.SystemException
      System.StackOverflowException

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class StackOverflowException : SystemException

NameBeschreibung
System_CAPS_pubmethodStackOverflowException()

Initialisiert eine neue Instanz der StackOverflowException-Klasse. Dabei wird die Message-Eigenschaft der neuen Instanz auf eine vom System gelieferte Meldung festgelegt, die den Fehler beschreibt, z. B. "Dieser Vorgang verursachte einen Stapelüberlauf". Diese Meldung berücksichtigt die aktuelle Systemkultur.

System_CAPS_pubmethodStackOverflowException(String)

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

System_CAPS_pubmethodStackOverflowException(String, Exception)

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

NameBeschreibung
System_CAPS_pubpropertyData

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen über die Ausnahme bereitstellen.(Geerbt von Exception.)

System_CAPS_pubpropertyHelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.(Geerbt von Exception.)

System_CAPS_pubpropertyHResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.(Geerbt von Exception.)

System_CAPS_pubpropertyInnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.(Geerbt von Exception.)

System_CAPS_pubpropertyMessage

Ruft eine Meldung ab, die die aktuelle Ausnahme beschreibt.(Geerbt von Exception.)

System_CAPS_pubpropertySource

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

System_CAPS_pubpropertyStackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.(Geerbt von Exception.)

System_CAPS_pubpropertyTargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.(Geerbt von Exception.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von Object.)

System_CAPS_pubmethodGetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die ursprüngliche Ursache für eine oder mehrere nachfolgende Ausnahmen ist.(Geerbt von Exception.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.(Geerbt von Exception.)

System_CAPS_pubmethodGetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.(Geerbt von Exception.)

System_CAPS_pubmethodToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.(Geerbt von Exception.)

StackOverflowException für Stapelüberlaufs, in der Regel im Falle einer sehr tiefe oder unbegrenzte Rekursion ausgelöst.

StackOverflowException verwendet HRESULT COR_E_STACKOVERFLOW mit den Wert 0x800703E9. Die Localloc intermediate Language (IL)-Anweisung löst StackOverflowException. Eine Liste der anfänglichen Eigenschaftenwerte für eine StackOverflowException Objekt, finden Sie unter der StackOverflowException Konstruktoren.

In .NET Framework 1.0 und 1.1, fangen Sie konnte ein StackOverflowException Objekt (z. B. die unbegrenzte Rekursion Wiederherstellung). Ab .NET Framework 2.0, können Sie nicht Abfangen einer StackOverflowException -Objekt mit einer try/catch -Block, und den entsprechenden Prozess standardmäßig beendet. Daher sollten Sie Ihren Code, um zu erkennen und zu verhindern, dass einen Stapelüberlauf schreiben. Z. B. Wenn Ihre app Rekursion abhängig ist, verwenden Sie einen Indikator oder einem Zustand rekursive Schleife beendet. Im folgenden Beispiel wird einen Leistungsindikator, um sicherzustellen, dass die Anzahl der rekursive Aufrufe der Execute Methode maximal definiert, durch die Konstante MAX_RECURSIVE_CALLS nicht überschreiten.

using System;

public class Example
{
   private const int MAX_RECURSIVE_CALLS = 1000;
   static int ctr = 0;

   public static void Main()
   {
      Example ex = new Example();
      ex.Execute();
      Console.WriteLine("\nThe call counter: {0}", ctr);
   }

   private void Execute()
   {
      ctr++;
      if (ctr % 50 == 0)
         Console.WriteLine("Call number {0} to the Execute method", ctr);

      if (ctr <= MAX_RECURSIVE_CALLS)
         Execute();

      ctr--;
   }
}
// The example displays the following output:
//       Call number 50 to the Execute method
//       Call number 100 to the Execute method
//       Call number 150 to the Execute method
//       Call number 200 to the Execute method
//       Call number 250 to the Execute method
//       Call number 300 to the Execute method
//       Call number 350 to the Execute method
//       Call number 400 to the Execute method
//       Call number 450 to the Execute method
//       Call number 500 to the Execute method
//       Call number 550 to the Execute method
//       Call number 600 to the Execute method
//       Call number 650 to the Execute method
//       Call number 700 to the Execute method
//       Call number 750 to the Execute method
//       Call number 800 to the Execute method
//       Call number 850 to the Execute method
//       Call number 900 to the Execute method
//       Call number 950 to the Execute method
//       Call number 1000 to the Execute method
//
//       The call counter: 0
System_CAPS_noteHinweis

Anwenden der HandleProcessCorruptedStateExceptionsAttribute -Attribut auf eine Methode, die löst eine StackOverflowException hat keine Auswirkung. Sie können nicht immer noch vom Benutzercode behandeln.

Wenn Ihre Anwendung die common Language Runtime (CLR) hostet, können sie angeben, dass die CLR die Anwendungsdomäne entladen soll, in dem die Stapelüberlaufausnahme auftritt und den zugehörigen Prozess fortsetzen. Weitere Informationen finden Sie unter ICLRPolicyManager-Schnittstelle.

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0

Öffentliche statische (in Visual Basic freigegebene) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Zurück zum Anfang
Anzeigen:
© 2016 Microsoft