Syntaxe:
try { ... } catch( typeA arg ) { ... } catch( typeB arg ){ ... } catch( typeN arg ) { ... }
Le mot-clé throw fait partie du mécanisme de gestion des exception en C++. throw s'utilise en coordination avec les mot-clés try et catch pour fournir au programmeur un moyen simple et élégant de garder le contrôle sur l'exécution d'un programme malgré l'apparition d'erreurs.
On utilise le plus souvent un bloc try pour exécuter du code contenant des possibilités d'erreurs. A l'intérieur de ce bloc, si une erreur est détectée l'instruction throw est exécutée (on dit qu'on lance une exception), ayant pour conséquence un saut direct de l'exécution jusqu'à un des blocs catch suivants. Dans ce cas le reste des instructions du bloc try n'est pas exécuté.
Exemple illustrant le comportement lors du lancé d'une exception :
Un bloc
catch (...) { }
attrape n'importe quelle exception lancée, sans considérer le type d'objet levé et sans donner accès à cet objet. On sait qu'une exception a été lancée mais on n'en connait pas le type exact.
Écrire
throw
à l'intérieur d'un bloc catch relance l'exception attrapée.
Exemple:
try { cout << "Avant de lancer l'exception" << endl; throw 42; cout << "Ceci ne sera jamais exécuté!" << endl; } catch( int erreur ) { cerr << "Erreur: exception attrapée " << erreur << endl; }