Conditions and Error Handling
"The death rate is the same for us as for anybody... one person, one death, sooner or later."
No matter what you do, things will eventually go wrong in any program you write. You may have overlooked a bug, pass a function an object of the wrong data type, overestimated the ability of your users to follow instructions, incorrectly guaged the needs of your users, or, most commonly, kept working when you're burned-out, and really messed up your code. It happens to everyone.
Thankfully, Lisp has a very mature and robust system for handling errors gracefully, so that your users can have a seamless experience.
In this chapter, we'll take a tour through all of Lisp's built-in tools for handling, defining, and working with Conditions.
Errors vs. Conditions
Even More HANDLER-CASE
Even More HANDLER-BIND
Defining Conditions, Again