ENSURE (MFC)
データが正しいかどうかを検証するために使用します。
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