GotW #82: Debate #1 - Exception Safety and Specifications: Are They Worth It?
Boost Library Requirements and Guidelines
The reasoning for not using exception specifications is pretty solid, but I think it is still a bit unclear whether or not throw() is useful. The STL uses throw() a lot, and I have some cleanup functions that mustn't throw. Should I use throw() for them or is it pointless and will only lead to extra compiler generated overhead? Should I bother using throw() for other functions that I can guarantee not to throw, but them throwing an exception is not really important either way?A non-inline function is the one place a "throws nothing" exception-specification may have some benefit with some compilers.