En C++, il est effectivement possible de lever une exception en valeur sans allocation de mémoire sur un segment de mémoire, cette situation est donc logique. Dans .NET framework, mais est un type référence, par conséquent, il revient sur un segment de mémoire. Comment le .NET framework alloue de la mémoire pour
lorsqu’il n’y a pas assez de mémoire pour créer un nouvel objet ?
Réponses
Trop de publicités?Quand une condition de mémoire est rencontré à l'intérieur de l'environnement d'exécution, il appelle ThrowOutOfMemory. Cela appelle une Exception::GetOOMException, qui construit l'objet sur la pile, puis la copie d'une façon statique alloué par l'instance globale, qui est ensuite jeté.
Ce n'est pas l'Exception géré, si, il a des exceptions C++ déclaré dans ex.h. Les Exceptions C++ sont convertis pour la gestion des Exceptions dans clrex.cppqui contient le code spécifiquement pour jeter le préaffectés géré OutOfMemoryException, qui a été initialement alloué et construit en appdomain.cpp.
Remarque: Certains de ces fichiers sont volumineux et peut se bloquer votre navigateur pendant plusieurs secondes, il charge la coloration syntaxique.
Les sites d'appel que Tim Schmelter liée dans un commentaire sur l'autre réponse ne sont pas liées à l'exécution à court de mémoire et d'être incapables de construire un objet.