Condition Handling for Non-Lispers

“One of Common Lisp’s more advanced features is its condition handling system, which is a powerful generalisation of other languages’ exception handling systems. I first became aware of condition handling from Peter Seibel’s Practical Common Lisp, chapter 19. But if I’m honest I’ve only very recently understood what it meant; it seems to assume a higher proficiency with Lisp, and I find the S-expressive examples more of a hindrance than a help. Sorry, Lispers.

So instead I’m going to walk through condition handling, with a more thorough explanation of the rationale, and with pseudo-Python examples. (Though, to be clear, these concepts would work just as well in a static language as a dynamic one, as exceptions do.)…”