最近、同僚がC ++コードでの例外仕様の使用について私の意見を尋ねました。私は、Herb Sutter:A Pragmatic Look atExceptionSpecificationsによってこの記事をまとめることができました。ハーブサッターのほとんどの記事と同様に、この記事は教育的な読み物ですが、簡単な答えは「そうしないでください」です。
要約すると、彼は「実装前の夜だった」というタイトルの詩に言及しています。この詩では、標準委員会は、事実上、最後の最後に機能を追加するというユーザーの要求に屈しますが、それが何をしているのかを発見するだけです。求められた、それは本当に彼らが望んでいたことをしません。そして、はい、例外仕様はその法案に適合します。彼が言うように、「この機能は当時は良いアイデアのようでした。それはまさに一部の人が求めていたものです。」それでも不十分な場合は、「エクスポート」にアクセスすると、同様の悲しい結果が得られます。
だから問題はこれです:あなたが涙を経験したくないのであれば、C ++のどの「機能」が壊れていることが判明し、使用すべきではありません。これは主観的な罵倒の餌食になるかもしれませんが、測定可能な問題を引き起こすためだけに機能が展開された特定の経験を引用してくれることを願っています。さらに良いのは、Sutter(または標準に深く関わっている人)のような先導灯による記事の引用で、機能について人々に警告することです。