Try, Catch e Throw

  • 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)

© Ing. Stefano Salvi - All rights reserved