7
C ++に「最終的に」コンストラクトがないのはなぜですか?
C ++での例外処理は、try / throw / catchに制限されています。Object Pascal、Java、C#、Pythonとは異なり、C ++ 11でもfinallyコンストラクトは実装されていません。 「例外の安全なコード」について議論しているC ++の文献がたくさんあります。リップマンは、例外セーフコードは重要だが高度で難しいトピックであり、彼の入門書の範囲を超えていると書いています。これは、セーフコードがC ++の基本ではないことを暗示しているようです。ハーブサッターは、例外的なC ++のトピックに10章を費やしています! しかし、「例外セーフコード」を記述しようとするときに遭遇する問題の多くは、finally構造が実装されていれば非常によく解決でき、プログラマは例外が発生した場合でもプログラムを復元できるようになりますリソース、潜在的に問題のあるコードの割り当てのポイントに近い、安全で安定した、漏れのない状態に。私は非常に経験豊富なDelphiおよびC#プログラマーとしてtry ..を使用します。これらの言語のほとんどのプログラマーと同様に、最終的にコード内でかなり広範囲にブロックします。 C ++ 11に実装されているすべての「付加機能」を考慮すると、「最終的に」まだ存在していないことに驚いた。 それでは、なぜfinallyコンストラクトがC ++で実装されていないのでしょうか?把握するのはそれほど難しくも高度な概念でもないので、プログラマーが「例外安全なコード」を書くのを支援するのに大いに役立ちます。
57
c++
exceptions