libsff

Home Modules Examples

CCMIO Error Handling

Error handling in C APIs is fairly cumbersome if you need to check for errors frequently, as you either need to check return values (or parameters) or a global error after each function call to ensure that the next one does not go bad. However, most of the time you would like to call API routines if there has been no error, otherwise skip until the end. libsff has appropriated error handling ideas from dataflow programming in an attempt to make error handling less cumbersome for the API user. All functions return an error, in case it is convenient, but most functions also take an error pointer, the value of which will be set to the error returned. Should the value of this pointer be an error upon entrance to the function, the function will do nothing. Occasionally you will want to test whether an function call will succeed. In this case, NULL, which is always interpreted as kCCMIONoErr, should be passed to the function and the return value checked for success. If the error pointer were passed then an error would be recorded and no succeeding function would execute, even though they should.

Dataflow error handling allows the API user to write code that opens a file, does some reading or writing, and then closes it, without checking for errors until the end. The API guarantees that any return parameters of the function will be usable (i.e not crash), unless otherwise documented, and that, should an error occur early on, all memory will properly be deallocated.

There are several things to keep in mind when using errors:


Generated on Mon Dec 13 16:20:26 2004 for libccmio by doxygen 1.3.6