Какие вы применяете методы обработки ошибок? Имеется ввиду:
1. ассерты,
2.проверки всех входных параметров на корректность, проверки только некоторых из них;
3. полной проверки на корректность или только проверка на неравенство NULL, например;
4. использование setjmp/longjmp (или макросов, эмулирующих исключения), возврат кодов и/или установка глобальной переменной типа errno или же установка значения переменной в структуре (типа как в либах libconfig, libzip, etc).
5. Если устанавливаете код ошибки внутри переменной, то предлагаете только defin'ы (int'ы) для соот. кодов или же функция типа
const char * print_err_info(int errcode)
6. Если 5 вариант имеет место, то строка об ошибке содержит абстрактную информацию типа «Some error occured» (и является статической констатной в сегменте данных) или же строка создается sprintf'ом со всем параметрами, которые могли вызвать ошибку.
Если что пропустил - дополните. Интересует полный спектр всех возможных способов проверок и их применяемость в конкретной ситуации.