Наш код (в простой реализации библиотеки) начинает выглядеть следующим образом:
err = callToUnderlyingLibrary1();
if (err!=0) {
printf ("blah %d\n", err);
...
}
err = callToUnderlyingLibrary2();
if (err!=0) {
printf ("blah %d\n", err);
...
}
err = callToUnderlyingLibrary3();
if (err!=0) {
printf ("blah %d\n", err);
...
}
Это громоздко и уродливо. Есть лучший способ сделать это? Возможно, используя препроцессор С? Я думал что-то вроде:
CHECK callToUnderlyingLibrary1();
CHECK callToUnderlyingLibrary2();
CHECK callToUnderlyingLibrary3();
где макрос CHECK вызывает функцию и выполняет рудиментарную проверку ошибок.
Существуют ли предпочтительные идиоматические способы обращения с этим?