È la funzione try block. Utile solo in c-tors per errori di cattura nei costruttori di classi derivate. Puoi leggere ulteriori informazioni su questa funzione in standard, ad esempio par. 15, 15.1.
4 A function-try-block associa un gestore-seq con il ctor-inizializzatore, se presente, e il composto con istruzioni. Un'eccezione generata durante l'esecuzione dell'istruzione composta o, per i costruttori e i distruttori , durante l'inizializzazione o la distruzione , rispettivamente, dei sottooggetti della classe, trasferisce il controllo a un gestore in un blocco funzione-try nello stesso come un'eccezione generata durante l'esecuzione di un controllo di trasferimento try-block ad altri gestori. [Esempio:
int f(int);
class C {
int i;
double d;
public:
C(int, double);
};
C::C(int ii, double id)
try : i(f(ii)), d(id) {
// constructor statements
}
catch (...) {
// handles exceptions thrown from the ctor-initializer
// and from the constructor statements
}
-end esempio]
Vedere http://www.drdobbs.com/introduction-to-function-try-blocks/184401297 per una spiegazione più approfondita e logica. – pmr
wow .. mai visto prima ... grazie per la risposta – PermanentGuest
@PermanentGuest questa funzione viene usata raramente, dato che alla fine del tuo blocco catch verrà ripristinata l'eccezione, se non fai qualche altra eccezione. function-try-block non può accettare l'eccezione. – ForEveR