エラー条件のテスト
更新 : 2007 年 11 月
このトピックの内容は、次の製品に該当します。
Edition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
ネイティブのみ |
|||
Standard |
ネイティブのみ |
|||
Pro/Team |
ネイティブのみ |
表の凡例 :
対象 |
|
該当なし |
|
既定で非表示のコマンド |
アサーションを使用すると、コード内のエラー処理が完了しているはずの個所で、エラー条件をチェックできます。次の例のグラフィック ルーチンは、エラー コードを返します。または、正常終了した場合は 0 を返します。
myErr = myGraphRoutine(a, b);
/* Code to handle errors and
reset myErr if successful */
ASSERT(!myErr); -- MFC version
_ASSERT(!myErr); -- CRT version
エラー処理コードが正しく機能していれば、アサート ステートメントに達する前に、発生したエラーは処理され、myErr は 0 にリセットされるはずです。myErr に別の値が格納されている場合は、アサーションが失敗し、プログラムの実行が停止して [アサートに失敗しました] ダイアログ ボックス が表示されます。
ただし、アサート ステートメントは、エラー処理コードに代わるものではありません。最終リリース バージョンのコードで問題となる可能性のあるアサート ステートメントの例を次に示します。
myErr = myGraphRoutine(a, b);
/* No Code to handle errors */
ASSERT(!myErr); // Don't do this!
_ASSERT(!myErr); // Don't do this, either!
このコードは、アサート ステートメントを使用してエラー条件を処理しています。その結果、myGraphRoutine が返すエラー コードは、最終リリース バージョンのコードでは処理されないままになります。