ENSURE (MFC)
更新 : 2007 年 11 月
データが正しいかどうかを検証するために使用します。
ENSURE(
booleanExpression
)
ENSURE_VALID(
booleanExpression
)
パラメータ
- booleanExpression
テストするブール式を指定します。
解説
これらのマクロは、パラメータの検証を向上することを目的としています。マクロを使用すると、コード内の正しくないパラメータがそれ以上処理されなくなります。ASSERT のマクロとは異なり、ENSURE のマクロは、アサーションを生成するだけではなく、例外をスローします。
マクロは、プロジェクト構成に応じて 2 とおりの動作を行います。マクロは、ASSERT を呼び出した後、アサーションが失敗すると、例外をスローします。したがって、デバッグ構成では (つまり、_DEBUG が定義されている場合)、マクロはアサーションと例外を生成します。その一方、リリース構成では、マクロは例外だけを生成します (ASSERT は、リリース構成の例外を評価しません)。
ENSURE_ARG マクロの動作は、ENSURE マクロと同様です。
ENSURE_VALID は、ASSERT_VALID マクロを呼び出します (このマクロはデバッグ ビルドのみで有効です)。さらに、ENSURE_VALID は、ポインタが NULL の場合に例外をスローします。NULL のテストは、デバッグ構成とリリース構成の両方で実行されます。
テストが失敗したときは、ASSERT と同じ方法で警告メッセージを表示します。マクロは、必要に応じて、無効な引数の例外をスローします。
使用例
void CMyClass::Open(CMyObject* pMyObject)
{
ENSURE_VALID(pMyObject);
ENSURE(m_CubeLen > 0);
pMyObject->DoSomething();
}
必要条件
ヘッダー : afx.h