豆知識−ASSERTとVERIFY

ASSERTは、デバッグ環境での式の評価に使います。リリース環境では何もしません。
VERIFYは、デバッグ環境でもリリース環境でも式の評価をすることができます。
どちらも、デバッグ環境では引数に指定した式が0(偽)を返した場合にプログラムを異常終了させます。 VERIFYはリリース環境でも式の評価を行いますが、その結果が0であっても、 プログラムを異常終了させることはしません。

例えば、以下のように記述します。

	CMenu menu;
	VERIFY(menu.LoadMenu(IDR_MENU1));
	CMenu* pPopup = menu.GetSubMenu(0);
	ASSERT(pPopup != NULL); 
VERIFYではIDR_MENU1というIDをもつメニューを読みこんでいます。ここで読み込みに失敗した場合、 デバッグ環境ではプログラムを異常終了させます。VERIFYを使っているのは、 当然リリース環境でもこの式を実行する必要があるからです(この式がなければメニューが読み込めません!)。
メニューの読み込みに成功した後、今度はそこからポップアップメニューを取得しています。 そしてその後、その値がNULLでないかどうか評価しています。 ここでASSERTを使用しているのは、リリース環境ではこの評価式が不要だからです。

目次へ