# Step 7: Error Handling

> The Return Codes pages explain the three categories of runtime return codes: status codes, non-fatal error codes and fatal error codes. The SDK sample `samples/native/core/06_errorhandling_statuscode` demonstrates a status return code and how applications check the status of various runtime function calls. The sample emphasizes the fact that status codes like `MCO_S_NOTFOUND`, `MCO_S_DUPLICATE` and `MCO_S_CURSOR_END` may be part of normal operations. Non-fatal error conditions are demonstrated in ``06_errorhandling_nonfatalerr``.

> In contrast, fatal error conditions require special handling and are likely to indicate implementation errors, as shown in sample ``06_errorhandling_fatalerr``. It is common practice to register a fatal error handler, as seen in prior samples, to halt the application if a severe runtime error is encountered. This is demonstrated in samples ``06_errorhandling_fatalerr`` and `06_errorhandling_fatalerrex`.

> There are many more specialized examples in the SDK samples; developers are encouraged to build and run other SDK samples of interest and examine the source code to gain further understanding of eXtremeDB implementation.