Wann ist es in Ordnung, eine OutOfMemoryException abzufangen und wie damit umzugehen?

Gestern nahm ich an einer Diskussion über SO teil, die sich mit OutOfMemoryException und den Vor- und Nachteilen des Umgangs damit befasste (C # try {} catch {}).

Meine Profis für den Umgang damit waren:

Die Tatsache, dass OutOfMemoryException ausgelöst wurde, bedeutet im Allgemeinen nicht, dass der Status eines Programms beschädigt wurde.Laut Dokumentation "werfen die folgenden Microsoft Intermediate (MSIL) -Anweisungen OutOfMemoryException: box, newarr, newobj", was (normalerweise) bedeutet, dass die CLR versucht hat, einen Speicherblock einer bestimmten Größe zu finden, und dies nicht konnte; es tutnicht bedeutet, dass uns kein einziges Byte mehr zur Verfügung steht;

Aber nicht alle Leute waren damit einverstanden und spekulierten über einen unbekannten Programmstatus nach dieser Ausnahme und die Unfähigkeit, etwas Nützliches zu tun, da dies noch mehr Speicherplatz erfordert.

Daher ist meine Frage: Was sind die schwerwiegenden Gründe, OutOfMemoryException nicht zu behandeln und sofort aufzugeben, wenn es auftritt?

Bearbeitet: Denken Sie, dass OOME genauso schwerwiegend ist wie ExecutionEngineException?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage