Quasi .
Ci sono diversi meccanismi coinvolti:
1) errori c++, gestiti dal try/catch
2) errori c, che possono essere intercettati da:
try {
}
catch(...) {
}
(si, proprio
3 puntini).
3) poi ci sono i
structured error handler gestiti da un'estensione del C++ di Microsoft:
__try {
}
__except(expression) {
}
e
__try {
}
__finally {
}
http://msdn.microsoft.com/en-us/library/vstudio/swezty51.aspx
4) Infine ci sono gli errori generati dalla libreria C (NON C++), o da errori a piu' basso livello, che terminano forzatamente l'applicazione. Questi devono essere gestiti impostando opportunamente il
terminate_handler.
Quello che conviene fare, di solito, e' convertire qualunque eccezione/errore
NON C++ in una corrispondente eccezione C++, in modo da avere un unico modello per la gestione delle eccezioni.
Quindi, il tutto dipende dal tipo di eccezioni che devi intercettare.