3 ms·
What if you're a library and don't want to alter global signal handling?
by fulafel 3y ago
What if you're a library and don't want to alter global signal handling?
- eqvinox 3y agoIf you're about to fail an assertion (which is semantically similar to a SEGV), you probably shouldn't care about messing up signal handling anymore ;) FWIW the actual answer is that libraries should be good at reporting / returning errors to the calling application in a reasonable manner instead of tripping assert()s or crashing the entire process. Which makes the question moot because ideally the library has few asserts to begin with.
- Peter0x44 3y agoAsserts are to make your code more sensitive to defects, for example, checking function invariants. Ideally the library has more, not less, since they show care and thought has gone in. They should never be used to handle errors. Another feature of asserts is that `-DNDEBUG` disables them.
- eqvinox 3y agoSorry, yeah, I'm just living in a world where asserts being misused to "handle errors" is unfortunately rather common. My argument is specifically against that kind of assertion, I should've been more clear.