LispWorks Delivery User Guide > 9 Delivery and Internal Systems > 9.4 Error handling in delivered applications


9.4.2 Deleting of condition classes

Condition types are classes like any other class, so may be shaken out. However the code may contain many references to condition types through error calls that are never going to happen in the application. Therefore, there is a special deletion action for conditions, which is controlled by the deliver keywords :condition-deletion-action, :keep-conditions and :packages-to-remove-conditions.

When a condition is deleted (that is when :condition-deletion-action is :delete ), trying to signal it returns a simple-error , which means that it got the wrong type. On the other hand, it has all the information in the format-arguments slot. If the conditions are redirected (that is, when :condition-deletion-action is :redirect ), a stricter type is returned, but some of the information may be lost, because the condition that it redirects to has fewer slots.

User defined conditions are kept, unless:

  1. You add packages to :packages-to-remove-conditions .
  2. You set :keep-conditions to :none , in which case all the conditions are eliminated, or :minimal , in which case all the user conditions are deleted.

LispWorks Delivery User Guide - 22 Dec 2009