私のプログラムはユーザーの入力を待って、適切な場合にはそれを処理します。私は、特定の基準を満たしているかどうかを確認するためにユーザー入力を確認する必要があり、それがすべての基準を満たしていない場合は却下されます。ユーザー入力にエレガントなエラーを確認してください
擬似コードのようなものです:
if (fulfills_condition_1)
{
if (fulfills_condition_2)
{
if (fulfills_condition_3)
{
/*process message*/
}
else
cout << error_message_3; //where error_message_1 is a string detailing error
}
else
cout << error_message_2; //where error_message_2 is a string detailing error
}
else
cout << error_message_1; //where error_message_3 is a string detailing error
これらの条件の数が増加する可能性があり、かつスイッチか何かなどを用いて、これを表現するための滑らかな印象の方法があった場合、私は思っていましたそれはカスケードの多くの代わりにif
ステートメントです。
私は
if (fulfills_condition_1 && fulfills_condition_2 && fulfills_condition_3)
/*process message*/
else
error_message; //"this message is not formatted properly"
を使用する可能性がある知っているが、これは最初のものよりもあまり有用であり、問題がどこにあるか言っていません。
条件はおおよそすなわちcondition_1
をチェックする重要性が高まっに配置することができるがcondition_3
をチェックするよりも重要であるので、if
文は仕事をする - しかし、これを行うために、一般的に良い方法はありますか?
例外..... –
最初に問題を引き起こした条件を正確に反映したtry-catchおよび例外クラスを使用して、マイナス条件チェックを検討しましたか? – WhozCraig
入力がどの程度複雑になるかによって異なります。私は入力がどのように有効であるかを宣言するDSLを作成し、そのDSLを表すオブジェクトを作成し、この入力を検証するとします。 –