a- Es tu bien certain qu'il s'agisse de bad_alloc???
b- Et dans des cas d'allocation de tableaux de types natifs??? En général, une forte utilisation de mémoire (sur les systèmes modernes, la mémoire n'est presque jamais épuisée) a tendance à faire apparaitre tous les bugs d'un programme...
c- Là je suis bien d'accord, mais note que la STL n'est pas du tout immunisée contre ce genre de malheur : l'index sur ton vector renvoyé n'est pas le bon, tant pis pour toi... Ou alors il faut ajouter des tests pour chaque conteneur, ce qui ne donne un code ni élégant, ni efficace...
Il me semble que c'est typiquement là qu'une boucle try/catch est utile... Encore que, personnellement, je préfère un test.
d- Il me semble que si tu es dans une situation ou une allocation de tableau de types natifs (de taille raisonnable) peut échouer, espérer un fonctionnement correct du programme est espérer beaucoup. Mais cela tient sans doute au fait que je n'ai jamais vu de bad_alloc... En fait, la première fois que j'en verrai un, cela méritera non seulement d'arrêter le programme, mais aussi d'envoyer à l'utilisateur un message de félicitations, et peut etre un avoir sur ses achats futurs...
e- J'essaie juste de comprendre en quoi les "new" sont dangereux... Et je dois dire que l'explication par les exceptions ne me parait pas satisfaisante
Partager