Resource acquisition is initialization

En programmation orientée objet, resource acquisition is initialization, abrégé RAII et traduisible littéralement par l'acquisition d'une ressource est une initialisation, est une technique utilisée dans plusieurs langages orientés objet, comme C++, D et Ada. Cette technique, inventée par Bjarne Stroustrup[1], permet de s'assurer, lors de l'acquisition d'une ressource, que celle-ci sera bien libérée en liant cette acquisition à la durée de vie d'un objet : la ressource est acquise durant l'initialisation de l'objet, il est alors possible de l'utiliser tant que la ressource est disponible et elle est libérée au moment de la destruction de l'objet, cette destruction étant garantie même en cas d'erreur.

En C++, les objets résidant sur la pile sont automatiquement détruits lors de la sortie de la portée, y compris dans le cas d'une levée d'exception [2]; leur destructeur est appelé avant que l'exception ne se propage.

La technique RAII aide à l'écriture de code plus résistant aux exceptions : pour libérer une ressource avant de permettre à l'exception de se propager, on peut écrire un destructeur approprié plutôt que de disséminer et multiplier les instructions de nettoyage entre les blocs de prise en compte des exceptions.

  1. (en) Bjarne Stroustrup, The Design and Evolution of C++, Reading, Addison-Wesley, , 4e éd., 461 p. (ISBN 978-0-201-54330-8, LCCN 93050758)
  2. (en) Bjarne Stroustrup, Exception Safety : Concepts and Techniques, , PDF (lire en ligne)

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne