5 ms·
Another best practice: Please do not use logging as an excuse to avoid implementing proper error propagation in libraries or utility code. Bad: void somethi
by sebcat 8y ago
Another best practice: Please do not use logging as an excuse to avoid implementing proper error propagation in libraries or utility code.
Bad:
void something_failable(void *data) {
if (!is_valid(data)) {
log_err("invalid data");
}
/* ... */
}
Less bad:
int something_failable(xxx_t *ctx, void *data) {
if (!is_valid(data)) {
return xxx_err(ctx, "invalid data");
}
/* ... */
}
- ensiferum 8y agoAnother best practice, don't write logic to deal with BUGS but instead assert. Bad: int something_failable(xxx_t *ctx, void *data) { if (!is_valid(data)) { return xxx_err(ctx, "invalid data"); } /* ... */ } Less bad: int something_failable(xxx_t *ctx, void *data) { ASSERT(is_valid(data)); /* ... */ }