[OT] Error handling in C3 language
Ali Çehreli
acehreli at yahoo.com
Thu May 29 21:18:39 UTC 2025
On 5/29/25 1:18 PM, Kagamin wrote:
> But striving to be evolution of C, faults look like error code
> singletons and apparently don't carry much information.
Same here.
I've been using a macro system in a C++ library that exposes a C API.
All implementation functions return an optional type that automatically
errors if not checked. Equivalents of enforce(), assert(), etc.
automatically return an invalid optional.
Here is your point: There is a constant-length buffer that collects a
backlog of error messages from function calls. Exhausting the buffer is
not an error; the lowest-level error messages are retained. That buffer
is just 4K, which is 0 bytes to my eyes :).
The caller of the C API receives a C array of error strings that they
can print to see exactly what happened. Sweet...
Oh... oh... and all formatted error messages are actually generated in a
development build even when there are no errors, to prove that error
messages will render and look correct when generated. (The buffer is a
lot larger in that case, not 4K.) Very sweet indeed... :)
Ali
More information about the Digitalmars-d
mailing list