C++ Coding Standardsでも取り扱われていますが、C++で例外指定を使うべきでない理由。
かなり適当にはしょって言うと、
という感じ。どんな例外を投げるかは、例外指定ではなくてドキュメントに書けということですね。
基本的には関数を例外安全にした上で、処理できる例外は処理し、それ以外は呼び出し元にそのまま投げるのが良いのでしょうが、実際には例外安全にできなかったり、できるけどやたら(実装時や実行時の)コストがかかる場合も多くて難しいところですね。