Programming with Exceptions

This article presents two series of examples of motivating the Standard C++ notion of a basic guarantee of exception safety, and shows how the techniques required to provide that basic guarantee actually lead to simpler programs.

From the author of

From the author of

Introduction

One of the nice things about Standard C++ is that you can use exceptions for
systematic error handling. However, when you take that approach, you have to
take care that when an exception is thrown, it doesn't cause more problems than
it solves. That is, you have to think about exception safety. Interestingly,
thoughts about exception safety often lead to simpler and more manageable code.

In this article, I first present concepts and techniques for managing resources
and for designing classes in a program relying on exceptions. For this presentation,
I use the simplest examples that I can think of. Finally, I explain how these
ideas are directly reflected in the C++ standard library so that you can immediately
benefit from them.