### Enabling Exception Checking

Some preconditions are more difficult to check than others. Consider the following possible preconditions:

1. A cursor for a linked collection implementation still points to an element of a given collection.
2. A collection is not empty.

In the production version of a program, it may be less efficient to check the first precondition than the second.

The Collection Class Library provides three levels of precondition checking. They are selected by the following C-preprocessor macro definitions:

- INO_CHECKS--Check for memory overflow. Other checks may be eliminated to improve performance.
- Default--Perform all precondition checks, except the check that a cursor actually points to an element of the collection.
- IALL_CHECKS--Perform all precondition checks, including the (costly) check that a cursor actually points to an element of the collection. This extra check can only fail for undefined cursors.

Define the C-preprocessor macro to use them. You typically define them with the appropriate compiler options. For example, you could include the following directive in your project's configuration file:

    define("INO_CHECKS")

Introduction to the Collection Classes
Exceptions Defined and Used by the Collection Classes
Exception Causes
Exceptions Caused by System Failures and Restrictions

Cursors vs. Exception Handling
Troubleshooting Problems while Using the Collection Class Library