| Allegro CL version 6.2 Unrevised from 6.1 | |||||||||
This variable controls how to handle errors which occur during printing.
Normal printing follows all of the rules of condition-system handling; and if any handled or 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).
But normally, a user doesn't 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 a printing of an enclosed
object that describes the problem. Formerly, the object looked like
#<Printer Error>, but now, the object is described
including a printing of the condition, for example,
user(1): (format nil "~{abc~:}")
"#<Printer Error, obj=#x30000bc5: Insufficient format args>"
user(2):
*enclose-printer-errors* should always be bound
to true whenever objects are being printed, such as in terminal and
window output functions like inspectors, debuggers, etc.
*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, it
can be set to nil.
Copyright (c) 1998-2002, Franz Inc. Oakland, CA., USA. All rights reserved.
Documentation for Allegro CL version 6.2. This page was not revised from the 6.1 page.
Created 2002.2.26.
| Allegro CL version 6.2 Unrevised from 6.1 | |||||||||