2Close
FolcoOn the 2019-05-20 at 06:28pm
yop,

J'essaye de faire ça : throw (except("plip"));
Mais j'ai déclaré except non copiable (constructeur de copie privé). Pourquoi ? Parce que je souhaite l'intercepter par référence : catch (const except& exception)
Le compilateur n'est pas content, parce qu'apparemment il veut faire une recopie de l'objet.

Double question :
1. comment passer cet objet par référence, sans l'allouer sur le heap, ni provoquer une copie ?
2. je peux comprendre qu'il va vouloir dépiler le frame buffer de la fonction qui lance l'exception, et donc perdre l'objet lancé. Mais pourquoi peut-on alors intercepter un objet par référence ?

Il y a quelque chose qui m'échappe dans ce mécanisme...
Merci d'avance !



Et j'aime pas les exceptions avec new...
truc = Alloc(machin);
if (!truc) {
    throw(new exception("plus de mémoire")); // AHAH même pas peur !!!!!
}