﹁プログラミングの禁じ手Web版 C++編﹂では、コンストラクタから例外を投げることは、プログラミングでやってはいけない﹁禁じ手﹂の1つとされています。 しかし、私はむしろ、コンストラクタは例外を投げるべきだと考えています。 クラスを設計する際には、オブジェクトが存在しうる最低限の条件を考えます。これは、クラスの役割や位置付けによって決まります。 コンストラクタでは、その最低限の条件を満たすまでに必要な処理を行います。その途中でエラーが起きれば、オブジェクトの生成は失敗です。この時、オブジェクトの生成が失敗したということを表すために、積極的に、コンストラクタは例外を投げるようにするべきだと思います。 例えば、﹁夫婦﹂というクラスを作るとしましょう。﹁夫婦﹂は、夫という﹁人﹂と、妻という﹁人﹂の、2人の関係を表すクラスです。 ﹁夫婦﹂は、夫と妻の2人がいて、初めて成立します。つまり、2人の﹁