C++ fournit une syntaxe pour les exceptions, par exemple:
void G() throw(Exception);
void f() throw();
Cependant, le compilateur Visual C++ ne pas les vérifier, le lancer de drapeau est tout simplement ignoré. À mon avis, cela rend l'exception de la fonctionnalité inutilisable. Donc ma question est: est-il un moyen de rendre le compilateur de vérifier si les exceptions sont correctement pris/relancés? Par exemple, un Visual C++ plugin ou un autre compilateur C++.
PS. Je veux le compilateur de vérifier si les exceptions sont correctement pris, sinon vous vous retrouvez dans une situation où vous avez mis une capture autour de chaque appel de fonction que vous faites, même si elles déclarent explicitement qu'ils ne seront pas jeter quoi que ce soit.
Mise à jour: le compilateur Visual C++ ne afficher un avertissement lors de la jeter dans une fonction marquée avec throw(). C'est super, mais malheureusement, l'avertissement ne s'affiche pas lorsque vous appelez une routine qui pourrait lancer. Par exemple:
void f() throw(int) { throw int(13); }
void h() throw() { g(); } //no warning here!