Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-03-17 16:56:01

From: "David Abrahams" <abrahams_at_[hidden]>

> IMO using the question "is this an exceptional situation?" to decide
> to throw an exception has an attractive ring to it, but is usually a
> mistake. A more appropriate question to ask is: "do we want stack
> here?"
> As a developer, if I have violated a precondition of a library I'm using,
> don't want stack unwinding. What I want is a core dump or the equivalent -
> way to inspect the state of the program at the point where the problem was
> detected. That usually means assert() or some equivalent.

A _very_ simple rule that I've come up with: throw if the documentation for
the function says to throw. Assert when the documentation says undefined

Assert-ing is a perfectly valid undefined behavior. Throwing an exception is
not - people tend to rely on it being this way.

Peter Dimov
Multi Media Ltd.

Boost list run by bdawes at, gregod at, cpdaniel at, john at