C++ : ​La gestion des erreurs avec les exceptions

Appliquer l'exception safety ou la garantie forte

Testez gratuitement nos 1255 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Identifiez les quatre niveaux de tolérance des exceptions lors d'un traitement sensible dans une classe. Il s'agit de vous orienter vers des solutions qui proposent une garantie forte.
01:59

Transcription

Le contrôle des exceptions ou exception safety en anglais définit pour les classes d'un programme quatre niveaux de garantie aux exceptions. La première, la garantie sans exception ou no-throw guarantee est le niveau le plus sécurisé. Le traitement réussira même si une exception survient pendant son déroulement. Les méthodes appelantes et a fortiori l'utilisateur ne perçoivent rien de l'exception qui est survenue pendant le traitement. C'est bien sûr quelque chose de très difficile à assurer ou alors pour des traitements bien spécifiques. La garantie forte ou strong exception safety en anglais spécifie que le traitement peut échouer si une exception survient mais que la cohérence de l'objet que l'on peut résumer à son état avant le traitement est maintenu et les ressources dont la mémoire sont maintenues aussi. On peut comparer ceci à un traitement transactionnel en base de données commite qui valide tout s'il n'y a pas de problème ou roll back qui revient en arrière en cas de problème. Le troisième niveau, la garantie de base ou Basic exception safety, moins souhaitable, consiste à éviter toute fuite de ressources et principalement de ressources mémoire en cas d'exception. En revanche, les effets de bord et incohérence de la classe ne sont pas exclus. Le dernier niveau est l'absence de niveau. Si une exception survient, on ne peut rien garantir ni fuite mémoire ni cohérence. C'est bien sûr ce qu'il faut éviter. Pour résumer, sur ce schéma on voit que plus on monte, plus la garantie et donc la stabilité de l'application est grande mais en contrepartie plus on monte en exigence, et moins la faisabilité est assurée. En effet, écrire des classes insensibles aux exceptions n'est pas généralisable à une application entière. L'objectif raisonnable d'un développeur est d'assurer au mieux une garantie forte et au pire une garantie de base. Plus haut, c'est difficile et plus bas, ce n'est pas prudent. Alors, voyons maintenant dans la pratique comment rendre nos classes compatibles avec une garantie forte.

C++ : ​La gestion des erreurs avec les exceptions

Profitez des nombreux atouts des exceptions pour gérer les erreurs dans vos développements C++. Apprenez à les déclencher, les intercepter, les personnaliser, etc.

56 min (13 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :20 oct. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !