Les conditions de Common Lisp sont similaires aux exceptions d'autres langages. Une différence cruciale est la séparation en Common Lisp du mécanisme de transfert de contrôle (saut non local) de celui de la détection et de l'appel d'un traitant d'une condition. Cette séparation est fondamentale pour l'implémentation d'outils de mise au point (en Anglais : debugging tools) permettant au programmeur d'étudier la chaîne d'événements ayant produit la condition.
Conformément à la tradition, Common Lisp propose un grand nombre d'abstractions créées à partir de la fonctionnalité de base, qui permettent au programmeur d'exprimer de façon compacte les idiomes de programmation habituels.