Diese Frage ist ähnlich wie one I recently asked about LLVM.Stürzt V8 ab, wenn Speicher nicht zugewiesen werden kann? Bringt dies den gesamten Prozess zum Absturz?
V8 weist JavaScript-Objekte auf einem manuell verwalteten Heap zu, dessen Speicher schließlich von mmap/VirtualAlloc (unter Linux/Windows) abgerufen wird. Jedoch für seine internen Datenstrukturen, V8 uses C++ standard containers such as std::vector
. Wenn diese Container Speicher reservieren müssen, aber nicht können, werfen sie normalerweise std::bad_alloc
.
Jedoch V8 is compiled with -fno-exceptions. Wenn Ausnahmen nicht verwendet werden können, wie behandelt V8 die Situation, in der die internen Datenstrukturen keinen Speicher zuordnen können? Stürzt es ab? Wenn ja, nimmt dies jeden Prozess, der V8 einbettet, herunter?
Nein, mein Browser verwendet sowohl "V8" als auch meine node.js, soweit ich gesehen habe, gehen die Abstürze so weit, wie die Anwendungscontainer gehen. –
Sehen Sie sich diesen Thread an: https://groups.google.com/forum/#!topic/v8-users/n-dbQX1AvTM. Übrigens, selbst der Google C++ - Stilführer sagt "Wir verwenden keine C++ - Ausnahmen" https://google.github.io/styleguide/cppguide.html#Exceptions –
@VladislavIvanishin nur wegen [Legacy-Code] (http: // stackoverflow com/questions/5184115/google-c-style-guides-keine-ausnahmen-rule-stl) – jaggedSpire