I just think that for whatever mechanism you want, if it's commonly used we could just put it in a library intended for the final application (and not for other library implementors, despite being bizarre). Actually, I kind of do that; most of the silly apps I write use a tiny utils.[ch] package that includes among other things emalloc, errealloc, catcherror, noerror and error (exceptions along the lines of the exception handling code in the kernel). I agree that each application should be able to do whatever it wants, and also that probably this code shouldnt get in the library by default; but I'd like to see several alternate libraries for error handling so that when I write an application (and not a library) I could borrow them.