私はC++を使用していくつかのコードを書き始めており、実験として書いている単純なタスクマネージャープログラムからこの単純なクラスメソッドを持っています。
void Task::setText(string text)
{
if(text.length() > MIN_LENGTH)
{
this->text = text;
}
}
ご覧のとおり、このメソッドは、クラス属性の長さが、私が示したコードの上で定義されtext
た変数よりも長い場合、メソッドに渡された属性に設定します。MIN_LENGHT
したがって、メソッドに渡された文字列に対して条件がtrueと評価されない場合は、何かを行う必要があります。
私が購入したC++の本では、エラー処理は説明されておらず、代わりにassert
どこでも使用されています。式がfalseの場合、assertはプログラムを中止するだけであり、これは入力検証を目的としているため、より良いアプローチを探しました。
この検索により、C++の例外が発生しました。そこでは、から継承するクラスを作成して例外を作成する方法について説明しますexception
。
良いOOPプラクティスは、すべてのクラスがプログラム内の他のクラスから独立している必要があることを示しています。では、作成したこの例外クラスをどこに配置すればよいでしょうか。同じヘッダーで、タスククラスを?それともtask.cpp
、クラスのすべてのメソッドを定義する場所に配置する必要がありますか?
たぶんこれはばかげた質問ですが、安全を確保し、最初から優れたソフトウェアアーキテクチャの慣行に従いたいだけです。