"I've yet to see a universally applicable error handling model, and I suspect I never will."
I'll bite:
http://www.gigamonkeys.com/book/beyond-exception-handling-co...
I'll bite:
http://www.gigamonkeys.com/book/beyond-exception-handling-co...
CL's dedication to the debugger also greatly reduces the downsides of not explicitly handling errors. You get the ability to notify the user of problems that they might be able to resolve manually for free.
The lack of function signature information is still a problem, though. Sometimes you really do need to know what exceptions might be thrown. There's also the issue of overhead . . .
I'm happy to say that exceptions are nice to have, but the idea that they're superior to returning error codes at all times in all places (especially in a language that supports returning multiple values) is more than a little silly.