Qu'est-ce qu'un bon cas d'utilisation pour uncaught_exception?Quand dois-je utiliser uncaught_exception?
Répondre
Herb Sutter semble donner de bons conseils here. Il ne connaît pas un bon usage et dit que certains cas où cela semble être utile ne fonctionnent pas vraiment.
uncaught_exception
peut être utilisé dans les destructeurs, afin de déterminer s'ils sont exécutés dans le contexte d'une exception (où une interruption mettra fin au programme). Je ne suis pas en désaccord sur le fait que la philosophie est légèrement erronée, mais cela dépend de votre utilisation des exceptions - si votre exception est une erreur récupérable, il peut être plus pratique d'essayer de la réparer plutôt que de laisser une autre partie du code Traitez-le comme vous le feriez normalement.
Il est également utile si vous avez du code nécessitant une exception active (c'est rare, mais occasionnellement vous avez une bibliothèque de contrôle d'exception qui utilisera throw;
pour obtenir l'exception actuelle, mais cela entraînera une fin s'il n'y en a pas, donc uncaught_exception
peut être utilisé pour déterminer si cela va avorter (et si oui, peut-être jeter une exception!) Un exemple est les nouvelles installations d'exception, qui font également partie de boost