Quote:
|
Originariamente inviato da ri
se il metodo di finalizzazione richiamato dal distruttore solleva eccezioni sei comunque nella merda
|
No perchè il metodo di inizializzazione lo chiami dopo il costruttore e il metodo di finalizzazione prima del distruttore.
Ti faccio un esempio, ho una classe che gestisce la connessione con un certo database.
Uno potrebbe pensare di aprire la connessione (con eventuali eccezioni) nel costruttore, e chiuderla nel distruttore.
Molto meglio invece inserire nel costruttore solo l'assegnamento dei campi a seconda dei parametri passati; poi, esplicitamente alla chiamata del metodo di inizializzazione, aprire la connessione. Se si scatena lì l'eccezione è tutto un' altro paio di maniche rispetto al costruttore.
Stessa cosa per distruttore.