- Se non viene generata alcuna eccezione, il codice dei catch-block non viene eseguito
- Se in una funzione viene lanciata un'eccezione, la funzione viene terminata e le variabili
automatiche vengono eliminate, eventualmente invocando i distruttori
- Le funzioni possono essere naturalmente annidate a piacimento nell'esecuzione di un programma
- Se una funzione interna lancia un'eccezione, il processo di terminazione e di eliminazione
delle variabili viene ripetuto per tutte le funzioni, fino a trovarne una nella quale sia attivo
un try-block
- Se nessuna funzione ha un try-block attivo, fino ad arrivare al main, allora l'eccezione
è inaspettata ed il programma viene terminato con un messaggio di errore
- L'operazione di liberazione dello stack ed eliminazione delle variabili viene chiamata
srotolamento dello stack (stack unwounding)
|