0

私は学校向けのプロジェクトを構築していて、いくつかの例外処理(クラスで話し合ったトピック)をすり抜けたいと思いました。

私はそれらをどこでどのように使用できるかを読んでいますが、これまでのところ私は哲学に従うことができると思いますが、私が正しいかどうかを確認するために、この質問を投稿すると思いました。

オブジェクトのコンストラクターで例外処理を使用して、データメンバーが不正な値を取得するのを防ぐのは便利ですか(たとえば、質量が負でないことを確認するなど)?

オブジェクトのデータメンバーを変更する関数(たとえば、オブジェクトの長さを変更する関数は、長さがゼロを下回らないようにする必要があります)はどうですか?

これらのエラーをキャッチするにはどうすればよいですか(ユーザーが処理を制御できる場所でエラーを確認catchしたくありません)。main()

それとも、上記のすべてを脇に置いて、古き良き時代に戻す必要がありcout << you entered a wrong value, continuing with the standard value" << endl; val = 1;ますか?

(または、これはプロジェクトが何であるかに依存するものですか?)

4

1 に答える 1

2

プロジェクトによって多少異なりますが、おもちゃのプログラム以外では、デフォルト値で続行することを選択することはめったにありません。特にライブラリ コードを作成している場合、ctor にエラー メッセージを直接表示させることは、ほとんどの場合不適切です (たとえば、誰かがあなたのコードをウィンドウ プログラムで使用しようとした場合、cout多くの場合、まったく機能しません。例外をスローすることによって、一部のウィンドウ プログラムであることを認識するプログラムの他の部分は、適切な関数 (Windows の MessageBox など) を呼び出して、エラー メッセージを表示できます。

于 2012-04-09T22:55:28.107 に答える