Testing Error Conditions
You can use assertions to test for error conditions at a point in your code where any errors should have been handled. In the following example, a graphic routine returns an error code or zero for success.
myErr = myGraphRoutine(a, b); /* Code to handle errors and reset myErr if successful */ ASSERT(!myErr); -- MFC version _ASSERT(!myErr); -- CRT version
If the error-handling code works properly, the error should be handled and
myErr reset to zero before the assertion is reached. If
myErr has another value, the assertion fails, the program halts, and the Assertion Failed dialog box appears.
Assertion statements are not a substitute for error-handling code, however. The following example shows an assertion statement that can lead to problems in the final release code:
myErr = myGraphRoutine(a, b); /* No Code to handle errors */ ASSERT(!myErr); -- Don't do this! _ASSERT(!myErr); -- Don't do this, either!
This code relies on the assertion statement to handle the error condition. As a result, any error code returned by
myGraphRoutine will be unhandled in the final release code.