Comment puis-je décrire une méthode qui n'a pas d'effets secondaires si une exception est levée pendant l'exécution?

StackOverflow https://stackoverflow.com/questions/283487

  •  08-07-2019
  •  | 
  •  

Question

Je ne me souviens tout simplement pas de la terminologie utilisée pour cela et d'autres propriétés connexes.

EDIT - Un tel concept n’existe peut-être pas, mais je me souviens d’avoir lu quelque chose dans Effective C ++ (ou More Effective C ++) où il recommandait d’utiliser des swaps pour valider les modifications apportées à la fonction car les fonctions de swap vectoriel étaient garanties. exception.

Était-ce utile?

La solution

Je pense que vous voulez dire que la fonction est "exceptionnellement sûre". Voir par exemple http://fr.wikipedia.org/wiki/Exception_safety .

L'article de Wikipedia divise davantage la sécurité en différents niveaux. C’est celui qui est pertinent ici:

  

2. Sémantique de validation ou d'annulation, également appelée sécurité des exceptions fortes ou garantie de non-changement: les opérations peuvent échouer, mais les opérations en échec n'ont aucun effet secondaire et toutes les données conservent leurs valeurs d'origine.

Il existe une référence à un document de conception STL qui introduit la sécurité des exceptions et la sémantique de validation / annulation: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.asc

Autres conseils

Vous pensez peut-être à une garantie d'exception , notamment le " strong garantie ".

Après avoir lu votre édition, je soupçonne que votre titre est légèrement incorrect. Voulez-vous vraiment dire que cela n’a pas d’effets secondaires , qu’une exception soit levée ou non (comme dans le libellé actuel) ou qu’il n’existe pas d’effets secondaires lorsqu’une exception est levée, mais que la méthode se termine sans envoi une exception alors il / peut avoir des effets secondaires? Il y a une très grosse différence:)

Ce dernier est décrit dans Accelerated C # 2008 en tant que "neutralité d’exception".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top