What is Exception-Safety?

Informally, exception-safety in a component means that it exhibits reasonable behavior when an exception is thrown during its execution. For most people, the term “reasonable” includes all the usual expectations for error-handling: that resources should not be leaked, and that the program should remain in a well-defined state so that execution can continue. For most components, it also includes the expectation that when an error is encountered, it is reported to the caller.

More formally, we can describe a component as minimally exception-safe if, when exceptions are thrown from within that component, its invariants are intact. At least three different levels of exception-safety can be usefully distinguished. These distinctions can help us to describe and reason about the behavior of large systems.

In a generic component, we usually have an additional expectation of exception-neutrality, which means that exceptions thrown by a component’s type parameters should be propagated, unchanged, to the component’s caller.

From boost c++ libraries



Eclipse Helios + MinGw: Adding icons to the application build

Recently I’ve worked a Win32 API tutorial (www.winprog.org/tutorial) for creating a simple graphical program. At the point where the icon has been added to the app, however, I’ve got stuck. The compiler did not give an error messages but neither the icon nor the menu did appear. What the hell?

Continue reading