Seulement, il arrive souvent que, dans cette fonction, tu fasse appel à... d'autres fonctions, et que ces fonctions puissent elles-même faire appel à d'autres...
Au bout d'un moment, il devient donc difficile de s'assurer qu'aucune des fonctions appelées ainsi "en cascade" ne lancera une autre exception qu'une... std::bad_alloc.
Or, si l'exception n'est pas rattrapée, elle peut parfaitement remonter jusqu'à... foo.
Le résultat est alors sans appel: comme foo ne peut "sortir" (sur exception) que suite à... une std::bad_alloc, le programme se trouve face à une exception inattendue et la seule chose qu'il puisse faire dans ce cas est, simplement de s'arrêter brutalement, en perdant, au passage, toutes les informations qui auraient pu être véhiculées par l'exception qui aura occasionné ce massacre
Partager