| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |
This variable controls how to handle errors which occur during printing. When this variable is true, errors in printing cause informative output to be printed, but do not cause the debugger to be invoked.
Printing follows all of the rules of condition-system handling. If an unhandled condition results in a call to the debugger, a new break level is established, and the user is expected to deal with the low-level printer error (which usually results from a bad print-method or a trashed object).
Users typically do not want to debug a bad object or print method, because it is usually part of a larger problem which is either more important or is the cause of the bad printing. So, when this variable is true, those errors result in the printing of an enclosed object that describes the problem. The description includes information about the condition signaled. For example,
user(1): (format nil "~{abc~:}") "#<Printer Error, obj=#x30000bc5: Insufficient format args>" user(2):
It is probably desirable to have *enclose-printer-errors*
bound to true when
printing objects to display windows as errors may cause the system to
appear to hang (since the error will be signaled in the listener or
the console, which may not be visible).
*enclose-printer-errors*
has a default binding of
t
. This is a controversial decision, because
it could be interpreted as a non-conformance to the ANSI condition
handling rules. However, it is set to true by default to protect
against unwanted break-level processing in user code, especially when
non Allegro CL printing tools are used. If this default is not
desired, the value of this variable can be set to nil
.
Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |