View Single Post
Old 28-07-2005, 20:33   #1
ri
Senior Member
 
L'Avatar di ri
 
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
[c++] costruttori, distruttori ed eccezioni

son cresciuto con questo dogma: "non scrivere mai un costruttore o un distruttore che possano sollevare eccezioni"

non mi sembra una cosa stupida: ad esempio se abbiamo un distruttore che esegue molte operazioni e la prima di queste solleva un'eccezione, che succede alle operazioni successive? non vengono eseguite, ma quindi si avrebbero dei leack di memoria (nell'ipotesi migliore...)

stessa cosa in un costruttore: la new può fallire ed è buona norma verificare il risultato di ogni new immediatamente dopo averla eseguita, ma qual è il comportamento migliore da tenere in questi casi? una throw all'interno del costruttore è contrario alla regoletta sopra, ma non posso sicuramente tenermi un oggetto "con dei problemi"

quindi mi sorge la domanda: è il dogma sbagliato (o troppo rigido) o mi sfugge qualcosa?
ri è offline   Rispondi citando il messaggio o parte di esso