OutOfMemoryException OutOfMemoryException OutOfMemoryException OutOfMemoryException Class

Definition

Die Ausnahme, die ausgelöst wird, wenn für die weitere Ausführung eines Programms nicht genügend Arbeitsspeicher zur Verfügung steht.The exception that is thrown when there is not enough memory to continue the execution of a program.

public ref class OutOfMemoryException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class OutOfMemoryException : SystemException
type OutOfMemoryException = class
    inherit SystemException
Public Class OutOfMemoryException
Inherits SystemException
Vererbung
OutOfMemoryExceptionOutOfMemoryExceptionOutOfMemoryExceptionOutOfMemoryException
Abgeleitet
Attribute

Hinweise

OutOfMemoryExceptionverwendet das HRESULT COR_E_OUTOFMEMORYmit dem Wert 0x8007000E.OutOfMemoryException uses the HRESULT COR_E_OUTOFMEMORY, which has the value 0x8007000E.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von OutOfMemoryException, finden Sie unter den OutOfMemoryException Konstruktoren.For a list of initial property values for an instance of OutOfMemoryException, see the OutOfMemoryException constructors.

Hinweis

Der Wert der geerbten Data Eigenschaft ist immer null.The value of the inherited Data property is always null.

Eine OutOfMemoryException Ausnahme besteht aus zwei Hauptgründen:An OutOfMemoryException exception has two major causes:

  • Sie versuchen, ein StringBuilder -Objekt über die Länge hinaus zu erweitern, die StringBuilder.MaxCapacity von der-Eigenschaft definiert wird.You are attempting to expand a StringBuilder object beyond the length defined by its StringBuilder.MaxCapacity property.

  • Der Common Language Runtime kann nicht ausreichend zusammenhängenden Speicher zuweisen, um einen Vorgang erfolgreich auszuführen.The common language runtime cannot allocate enough contiguous memory to successfully perform an operation. Diese Ausnahme kann durch einen beliebigen Eigenschafts Zuweisungs-oder Methodenaufrufe ausgelöst werden, der eine Speicher Belegung erfordert.This exception can be thrown by any property assignment or method call that requires a memory allocation. Weitere Informationen zur Ursache OutOfMemoryException der Ausnahme finden Sie im Blogbeitrag "nicht genügend Arbeits Speicher" bezieht sich nicht auf den physischen Speicher.For more information on the cause of the OutOfMemoryException exception, see the blog post "Out of Memory" Does Not Refer to Physical Memory.

    Diese Art von OutOfMemoryException Ausnahme stellt einen schwerwiegenden Fehler dar.This type of OutOfMemoryException exception represents a catastrophic failure. Wenn Sie die Ausnahme behandeln möchten, sollten Sie einen catch -Block einschließen, der die-Methode aufruft, um die Environment.FailFast APP zu beenden und dem System Ereignisprotokoll einen Eintrag hinzuzufügen, wie im folgenden Beispiel gezeigt.If you choose to handle the exception, you should include a catch block that calls the Environment.FailFast method to terminate your app and add an entry to the system event log, as the following example does.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          try {
             // Outer block to handle any unexpected exceptions.
             try {
                string s = "This";
                s = s.Insert(2, "is ");
    
                // Throw an OutOfMemoryException exception.
                throw new OutOfMemoryException();
             }
             catch (ArgumentException) {
                Console.WriteLine("ArgumentException in String.Insert");
             }
    
             // Execute program logic.
          }
          catch (OutOfMemoryException e) {
             Console.WriteLine("Terminating application unexpectedly...");
             Environment.FailFast(String.Format("Out of Memory: {0}",
                                                e.Message));
          }
       }
    }
    // The example displays the following output:
    //        Terminating application unexpectedly...
    
    Module Example
       Public Sub Main()
          Try
             ' Outer block to handle any unexpected exceptions.
             Try
                Dim s As String = "This"
                s = s.Insert(2, "is ")
    
                ' Throw an OutOfMemoryException exception.
                Throw New OutOfMemoryException()
             Catch e As ArgumentException
                Console.WriteLine("ArgumentException in String.Insert")
             End Try
             
             ' Execute program logic.
    
          Catch e As OutOfMemoryException
             Console.WriteLine("Terminating application unexpectedly...")
             Environment.FailFast(String.Format("Out of Memory: {0}",
                                                e.Message))
          End Try
       End Sub
    End Module
    ' The example displays the following output:
    '       Terminating application unexpectedly...
    

Einige der Bedingungen, unter denen die Ausnahme ausgelöst wird, und die folgenden Aktionen können Sie durchführen:Some of the conditions under which the exception is thrown and the actions you can take to eliminate it include the following:

Sie rufen die StringBuilder.Insert -Methode auf.You are calling the StringBuilder.Insert method.

Sie versuchen, die Länge eines StringBuilder -Objekts über die in der- StringBuilder.MaxCapacity Eigenschaft angegebene Größe hinaus zu erhöhen.You are attempting to increase the length of a StringBuilder object beyond the size specified by its StringBuilder.MaxCapacity property. Im folgenden Beispiel wird die OutOfMemoryException Ausnahme veranschaulicht, die durch einen- StringBuilder.Insert(Int32, String, Int32) Aufrufversuch ausgelöst wird, wenn das Beispiel versucht, eine Zeichenfolge einzufügen Length , die dazu führt, dass die-Eigenschaft des Objekts die maximale Kapazität überschreitet.The following example illustrates the OutOfMemoryException exception thrown by a call to the StringBuilder.Insert(Int32, String, Int32) method when the example tries to insert a string that would cause the object's Length property to exceed its maximum capacity.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      StringBuilder sb = new StringBuilder(15, 15);
      sb.Append("Substring #1 ");
      try {
         sb.Insert(0, "Substring #2 ", 1);
      }
      catch (OutOfMemoryException e) {
         Console.WriteLine("Out of Memory: {0}", e.Message);
      }
   }
}
// The example displays the following output:
//    Out of Memory: Insufficient memory to continue the execution of the program.
Imports System.Text

Module Example
   Public Sub Main()
      Dim sb As New StringBuilder(15, 15)
      sb.Append("Substring #1 ")
      Try
         sb.Insert(0, "Substring #2 ", 1)
      Catch e As OutOfMemoryException
         Console.WriteLine("Out of Memory: {0}", e.Message)
      End Try
   End Sub
End Module
' The example displays the following output:
'   Out of Memory: Insufficient memory to continue the execution of the program.

Sie können einen der folgenden Schritte ausführen, um den Fehler zu beheben:You can do either of the following to address the error:

Ihre APP wird als 32-Bit-Prozess ausgeführt.Your app runs as a 32-bit process.

32-Bit-Prozesse können auf 32-Bit-Systemen maximal 2 GB an virtuellem benutzermodusspeicher und 4 GB virtuellem Benutzermodus-Arbeitsspeicher auf 64-Bit-Systemen zuordnen.32-bit processes can allocate a maximum of 2GB of virtual user-mode memory on 32-bit systems, and 4GB of virtual user-mode memory on 64-bit systems. Dadurch kann es schwieriger werden, dass der Common Language Runtime ausreichend zusammenhängenden Speicher zuweist, wenn eine große Zuweisung benötigt wird.This can make it more difficult for the common language runtime to allocate sufficient contiguous memory when a large allocation is needed. Im Gegensatz dazu können 64-Bit-Prozesse bis zu 8 TB virtuellen Arbeitsspeicher zuordnen.In contrast, 64-bit processes can allocate up to 8TB of virtual memory. Um diese Ausnahme zu beheben, kompilieren Sie Ihre APP neu, sodass Sie eine 64-Bit-Plattform als Ziel hat.To address this exception, recompile your app to target a 64-bit platform. Informationen zu bestimmten Plattformen in Visual Studio finden Sie unter Gewusst wie: Konfigurieren von Projekten für Zielplattformen.For information on targeting specific platforms in Visual Studio, see How to: Configure Projects to Target Platforms.

Ihre APP gibt nicht verwaltete Ressourcen frei.Your app is leaking unmanaged resources

Obwohl der Garbage Collector Arbeitsspeicher freigeben kann, der verwalteten Typen zugeordnet ist, verwaltet er nicht den Arbeitsspeicher, der nicht verwalteten Ressourcen zugeordnet ist, wie z. b. Betriebssystem Handles (einschließlich Handles zu Dateien, Speicher Abbild Dateien, Pipes, Registrierungs Schlüsseln und Wait-Handles). und Speicherblöcke, die direkt durch Windows-API-Aufrufe oder durch Aufrufe von Speicher Belegungs Funktionen wie mallocverwendet werden.Although the garbage collector is able to free memory allocated to managed types, it does not manage memory allocated to unmanaged resources such as operating system handles (including handles to files, memory-mapped files, pipes, registry keys, and wait handles) and memory blocks allocated directly by Windows API calls or by calls to memory allocation functions such as malloc. Typen, die nicht verwaltete Ressourcen verwenden, IDisposable implementieren die-Schnittstelle.Types that consume unmanaged resources implement the IDisposable interface.

Wenn Sie einen Typ verwenden, der nicht verwaltete Ressourcen verwendet, sollten Sie sicherstellen, dass Sie IDisposable.Dispose die zugehörige-Methode aufrufen, wenn Sie Sie nicht mehr benötigen.If you are consuming a type that uses unmanaged resources, you should be sure to call its IDisposable.Dispose method when you have finished using it. (Einige Typen implementieren auch eine Close Methode, die in der Funktion mit einer Dispose Methode identisch ist.) Weitere Informationen finden Sie unter Verwenden von Objekten, die iverwerfbare Themen implementieren .(Some types also implement a Close method that is identical in function to a Dispose method.) For more information, see the Using Objects That Implement IDisposable topic.

Wenn Sie einen Typ erstellt haben, der nicht verwaltete Ressourcen verwendet, stellen Sie sicher, dass Sie das Lösch Muster implementiert und ggf. einen Finalizer bereitgestellt haben.If you have created a type that uses unmanaged resources, make sure that you have implemented the Dispose pattern and, if necessary, supplied a finalizer. Weitere Informationen finden Sie unter Implementieren einer verwerfen-Methode Object.Finalizeund.For more information, see Implementing a Dispose method and Object.Finalize.

Sie versuchen, ein großes Array in einem 64-Bit-Prozess zu erstellen.You are attempting to create a large array in a 64-bit process

Standardmäßig lässt die Common Language Runtime in .NET Framework keine einzelnen Objekte zu, deren Größe 2 GB überschreitet.By default, the common language runtime in .NET Framework does not allow single objects whose size exceeds 2GB. Um diese Standardeinstellung zu überschreiben, können Sie die <Einstellung gcallowverylargeobjects > Konfigurationsdatei verwenden, um Arrays zu aktivieren, deren Gesamtgröße 2 GB überschreitet.To override this default, you can use the <gcAllowVeryLargeObjects> configuration file setting to enable arrays whose total size exceeds 2 GB. Unter .net Core ist die Unterstützung für Arrays von mehr als 2 GB standardmäßig aktiviert.On .NET Core, support for arrays of greater than 2 GB is enabled by default.

Sie arbeiten mit sehr großen Datensätzen (z. b. Arrays, Auflistungen oder Daten Bank Datasets) im Arbeitsspeicher.You are working with very large sets of data (such as arrays, collections, or database data sets) in memory.

Wenn Datenstrukturen oder Datasets im Arbeitsspeicher so groß werden, dass die Common Language Runtime nicht genügend zusammenhängenden Speicher für Sie zuordnen kann, wird eine OutOfMemoryException Ausnahme ausgelöst.When data structures or data sets that reside in memory become so large that the common language runtime is unable to allocate enough contiguous memory for them, an OutOfMemoryException exception results.

Um OutOfMemoryException Ausnahmen zu vermeiden, müssen Sie die Anwendung so ändern, dass weniger Daten im Arbeitsspeicher ansässig sind oder die Daten in Segmente aufgeteilt werden, die kleinere Speicher Belegungen erfordern.To prevent the OutOfMemoryException exceptions, you must modify your application so that less data is resident in memory, or the data is divided into segments that require smaller memory allocations. Beispiel:For example:

  • Wenn Sie alle Daten aus einer Datenbank abrufen und Sie dann in der APP filtern, um die Fahrten zum Server zu minimieren, sollten Sie die Abfragen so ändern, dass nur die Teilmenge der Daten zurückgegeben wird, die Ihre APP benötigt.If you are retrieving all of the data from a database and then filtering it in your app to minimize trips to the server, you should modify your queries to return only the subset of data that your app needs. Beim Arbeiten mit großen Tabellen sind mehrere Abfragen fast immer effizienter als das Abrufen aller Daten in einer einzelnen Tabelle und deren anschließende Bearbeitung.When working with large tables, multiple queries are almost always more efficient than retrieving all of the data in a single table and then manipulating it.

  • Wenn Sie Abfragen ausführen, die von Benutzern dynamisch erstellt werden, sollten Sie sicherstellen, dass die Anzahl der von der Abfrage zurückgegebenen Datensätze begrenzt ist.If you are executing queries that users create dynamically, you should ensure that the number of records returned by the query is limited.

  • Wenn Sie große Arrays oder andere Auflistungs Objekte verwenden, deren Größe zu OutOfMemoryException einer Ausnahme führt, sollten Sie Ihre Anwendung so ändern, dass Sie die Daten in Teilmengen bearbeitet, anstatt Sie gleichzeitig zu bearbeiten.If you are using large arrays or other collection objects whose size results in an OutOfMemoryException exception, you should modify your application to work the data in subsets rather than to work with it all at once.

Im folgenden Beispiel wird ein-Array abgerufen, das aus 200 Millionen Gleit Komma Werten besteht und dann den Mittelwert berechnet.The following example gets a array that consists of 200 million floating-point values and then calculates their mean. Die Ausgabe des Beispiels zeigt, dass eine OutOfMemoryException ausgelöst wird, da im Beispiel das gesamte Array im Arbeitsspeicher gespeichert wird, bevor der Mittelwert berechnet wird.The output from the example shows that, because the example stores the entire array in memory before it calculates the mean, an OutOfMemoryException is thrown.

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main()
   {
      Double[] values = GetData();
      // Compute mean.
      Console.WriteLine("Sample mean: {0}, N = {1}",
                        GetMean(values), values.Length);
   }

   private static Double[] GetData()
   {
      Random rnd = new Random();
      List<Double> values = new List<Double>();
      for (int ctr = 1; ctr <= 200000000; ctr++) {
         values.Add(rnd.NextDouble());
         if (ctr % 10000000 == 0)
            Console.WriteLine("Retrieved {0:N0} items of data.",
                              ctr);
      }
      return values.ToArray();
   }

   private static Double GetMean(Double[] values)
   {
      Double sum = 0;
      foreach (var value in values)
         sum += value;

      return sum / values.Length;
   }
}
// The example displays output like the following:
//    Retrieved 10,000,000 items of data.
//    Retrieved 20,000,000 items of data.
//    Retrieved 30,000,000 items of data.
//    Retrieved 40,000,000 items of data.
//    Retrieved 50,000,000 items of data.
//    Retrieved 60,000,000 items of data.
//    Retrieved 70,000,000 items of data.
//    Retrieved 80,000,000 items of data.
//    Retrieved 90,000,000 items of data.
//    Retrieved 100,000,000 items of data.
//    Retrieved 110,000,000 items of data.
//    Retrieved 120,000,000 items of data.
//    Retrieved 130,000,000 items of data.
//
//    Unhandled Exception: OutOfMemoryException.
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      Dim values() As Double = GetData()
      ' Compute mean.
      Console.WriteLine("Sample mean: {0}, N = {1}",
                        GetMean(values), values.Length)
   End Sub
   
   Private Function GetData() As Double()
      Dim rnd As New Random()
      Dim values As New List(Of Double)()
      For ctr As Integer = 1 To 200000000
         values.Add(rnd.NextDouble)
         If ctr Mod 10000000 = 0 Then
            Console.WriteLine("Retrieved {0:N0} items of data.",
                              ctr)
         End If
      Next
      Return values.ToArray()
   End Function
   
   Private Function GetMean(values() As Double) As Double
      Dim sum As Double = 0
      For Each value In values
         sum += value
      Next
      Return sum / values.Length
   End Function
End Module
' The example displays output like the following:
'    Retrieved 10,000,000 items of data.
'    Retrieved 20,000,000 items of data.
'    Retrieved 30,000,000 items of data.
'    Retrieved 40,000,000 items of data.
'    Retrieved 50,000,000 items of data.
'    Retrieved 60,000,000 items of data.
'    Retrieved 70,000,000 items of data.
'    Retrieved 80,000,000 items of data.
'    Retrieved 90,000,000 items of data.
'    Retrieved 100,000,000 items of data.
'    Retrieved 110,000,000 items of data.
'    Retrieved 120,000,000 items of data.
'    Retrieved 130,000,000 items of data.
'
'    Unhandled Exception: OutOfMemoryException.

Im folgenden Beispiel wird die OutOfMemoryException Ausnahme durch die Verarbeitung der eingehenden Daten vermieden, ohne dass das gesamte Dataset im Arbeitsspeicher gespeichert wird. die Daten werden bei Bedarf in eine Datei serialisiert, um eine weitere Verarbeitung zu ermöglichen (diese Zeilen werden im Beispiel auskommentiert). Da in diesem Fall eine Datei mit einer Größe von mehr als 1 GB erzeugt wird, wird der berechnete Mittelwert und die Anzahl der Fälle an die aufrufende Routine zurückgegeben.The following example eliminates the OutOfMemoryException exception by processing the incoming data without storing the entire data set in memory, serializing the data to a file if necessary to permit further processing (these lines are commented out in the example, since in this case they produce a file whose size is greater than 1GB), and returning the calculated mean and the number of cases to the calling routine.

using System;
using System.IO;

public class Example
{
   public static void Main()
   {
      Tuple<Double, long> result = GetResult();
      Console.WriteLine("Sample mean: {0}, N = {1:N0}",
                        result.Item1, result.Item2);
   }

   private static Tuple<Double, long> GetResult()
   {
      int chunkSize = 50000000;
      int nToGet = 200000000;
      Random rnd = new Random();
      // FileStream fs = new FileStream(@".\data.bin", FileMode.Create);
      // BinaryWriter bin = new BinaryWriter(fs);
      // bin.Write((int)0);
      int n = 0;
      Double sum = 0;
      for (int outer = 0;
           outer <= ((int) Math.Ceiling(nToGet * 1.0 / chunkSize) - 1);
           outer++) {
         for (int inner = 0;
              inner <= Math.Min(nToGet - n - 1, chunkSize - 1);
              inner++) {
            Double value = rnd.NextDouble();
            sum += value;
            n++;
            // bin.Write(value);
         }
      }
      // bin.Seek(0, SeekOrigin.Begin);
      // bin.Write(n);
      // bin.Close();
      return new Tuple<Double, long>(sum/n, n);
   }
}
// The example displays output like the following:
//    Sample mean: 0.500022771458399, N = 200,000,000
Imports System.IO

Module Example
   Public Sub Main()
      Dim result As Tuple(Of Double, Long) = GetResult()
      Console.WriteLine("Sample mean: {0}, N = {1:N0}",
                        result.Item1, result.Item2)
   End Sub

   Private Function GetResult As Tuple(Of Double, Long)
      Dim chunkSize As Integer = 50000000
      Dim nToGet As Integer = 200000000
      Dim rnd As New Random()
'       Dim fs As New FileStream(".\data.bin", FileMode.Create)
'       Dim bin As New BinaryWriter(fs)
'       bin.Write(CInt(0))
      Dim n As Integer
      Dim sum As Double
      For outer As Integer = 0 To CInt(Math.Ceiling(nToGet/chunkSize) - 1)
         For inner = 0 To Math.Min(nToGet - n - 1, chunkSize - 1)
            Dim value As Double = rnd.NextDouble()
            sum += value
            n += 1
'            bin.Write(value)
         Next
      Next
'       bin.Seek(0, SeekOrigin.Begin)
'       bin.Write(n)
'       bin.Close()
      Return New Tuple(Of Double, Long)(sum/n, n)
   End Function
End Module
' The example displays output like the following:
'   Sample mean: 0.500022771458399, N = 200,000,000

Sie werden wiederholt große Zeichen folgen verketten.You are repeatedly concatenating large strings.

Da Zeichen folgen unveränderlich sind, wird durch jeden Vorgang zum Verketten von Zeichen folgen eine neue Zeichenfolge erstellt.Because strings are immutable, each string concatenation operation creates a new string. Die Auswirkung für kleine Zeichen folgen oder für eine kleine Anzahl von Verkettungs Vorgängen ist unerheblich.The impact for small strings, or for a small number of concatenation operations, is negligible. Bei großen Zeichen folgen oder einer sehr großen Anzahl von Verkettungs Vorgängen kann die Verkettung von Zeichen folgen jedoch zu einer großen Anzahl von Speicher Belegungen und Speicherfragmentierung, schlechter Leistung OutOfMemoryException und möglicherweise Ausnahmen führen.But for large strings or a very large number of concatenation operations, string concatenation can lead to a large number of memory allocations and memory fragmentation, poor performance, and possibly OutOfMemoryException exceptions.

Wenn Sie große Zeichen folgen verketten oder eine große Anzahl von Verkettungs Vorgängen ausführen, sollten Sie StringBuilder die-Klasse anstelle String der-Klasse verwenden.When concatenating large strings or performing a large number of concatenation operations, you should use the StringBuilder class instead of the String class. Wenn Sie die Bearbeitung der Zeichenfolge abgeschlossen haben, StringBuilder konvertieren Sie die-Instanz in eine StringBuilder.ToString Zeichenfolge, indem Sie die-Methode aufrufen.When you have finished manipulating the string, convert the StringBuilder instance to a string by calling the StringBuilder.ToString method.

Sie Heften eine große Anzahl von Objekten im Arbeitsspeicher an.You pin a large number of objects in memory.

Das anhetzen einer großen Anzahl von Objekten im Arbeitsspeicher für längere Zeiträume kann es für die Garbage Collector schwierig machen, zusammenhängende Speicherblöcke zuzuordnen.Pinning a large number of objects in memory for long periods can make it difficult for the garbage collector to allocate contiguous blocks of memory. Wenn Sie eine große Anzahl von Objekten im Arbeitsspeicher angeheftet haben, z. b fixed . mithilfe C# der-Anweisung in GCHandle.Alloc(Object, GCHandleType) oder durch Aufrufen der-Methode GCHandleType.Pinnedmit dem Handle-Typ, können Sie wie OutOfMemoryException folgt vorgehen, um die Ausnahme zu beheben.If you've pinned a large number of objects in memory, for example by using the fixed statement in C# or by calling the GCHandle.Alloc(Object, GCHandleType) method with a handle type of GCHandleType.Pinned, you can do the following to address the OutOfMemoryException exception.

  • Evaluieren Sie, ob jedes Objekt tatsächlich fixiert werden muss,Evaluate whether each object really needs to be pinned,

  • Stellen Sie sicher, dass jedes Objekt so schnell wie möglich gelöst wird.Ensure that each object is unpinned as soon as possible.

  • Stellen Sie sicher, dass für jeden GCHandle.Alloc(Object, GCHandleType) Aufrufe der-Methode zum Anheften von Speicher GCHandle.Free ein entsprechender aufrufungsmethode zum Lösen des Speichers vorhanden ist.Make sure that each call to the GCHandle.Alloc(Object, GCHandleType) method to pin memory has a corresponding call to the GCHandle.Free method to unpin that memory.

Die folgenden MSIL-Anweisungen (Microsoft Intermediate) lösen OutOfMemoryException eine Ausnahme aus:The following Microsoft intermediate (MSIL) instructions throw an OutOfMemoryException exception:

Konstruktoren

OutOfMemoryException() OutOfMemoryException() OutOfMemoryException() OutOfMemoryException()

Initialisiert eine neue Instanz der OutOfMemoryException-Klasse.Initializes a new instance of the OutOfMemoryException class.

OutOfMemoryException(SerializationInfo, StreamingContext) OutOfMemoryException(SerializationInfo, StreamingContext) OutOfMemoryException(SerializationInfo, StreamingContext) OutOfMemoryException(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der OutOfMemoryException-Klasse mit serialisierten Daten.Initializes a new instance of the OutOfMemoryException class with serialized data.

OutOfMemoryException(String) OutOfMemoryException(String) OutOfMemoryException(String) OutOfMemoryException(String)

Initialisiert eine neue Instanz der OutOfMemoryException-Klasse mit einer angegebenen Fehlermeldung.Initializes a new instance of the OutOfMemoryException class with a specified error message.

OutOfMemoryException(String, Exception) OutOfMemoryException(String, Exception) OutOfMemoryException(String, Exception) OutOfMemoryException(String, Exception)

Initialisiert eine neue Instanz der OutOfMemoryException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.Initializes a new instance of the OutOfMemoryException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Eigenschaften

Data Data Data Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen über die Ausnahme bereitstellen.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Ruft eine Meldung ab, die die aktuelle Ausnahme beschreibt.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.Gets the method that throws the current exception.

(Inherited from Exception)

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() 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.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Ereignisse

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Gilt für:

Siehe auch