Should I use an exception specifier in C++?

No. Here are several examples why: Template code is impossible to write with exception specifications, template<class T> void f( T k ) { T x( k ); x.x(); } The copies might throw, the parameter passing might throw, and x() might throw some unknown exception. Exception-specifications tend to prohibit extensibility. virtual void open() throw( FileNotFound … Read more