ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| ANSI Common Lisp 9 Conditions 9.2 Dictionary of Conditions
9.2.43 muffle-warning | Restart
  Data Arguments Required: None. Description: This restart is established by warn so that handlers of warning conditions have a way to tell warn that a warning has already been dealt with and that no further action is warranted. Examples:
       (defvar *all-quiet* nil)  *ALL-QUIET*
       (defvar *saved-warnings* '())  *SAVED-WARNINGS*
       (defun quiet-warning-handler (c)
         (when *all-quiet*
           (let ((r (find-restart 'muffle-warning c)))
             (when r
               (push c *saved-warnings*)
               (invoke-restart r)))))
        CUSTOM-WARNING-HANDLER
       (defmacro with-quiet-warnings (&body forms)
         `(let ((*all-quiet* t)
                (*saved-warnings* '()))
            (handler-bind ((warning #'quiet-warning-handler))
              ,@forms
              *saved-warnings*)))
        WITH-QUIET-WARNINGS
       (setq saved
         (with-quiet-warnings
           (warn "Situation #1.")
           (let ((*all-quiet* nil))
             (warn "Situation #2."))
           (warn "Situation #3.")))
       Warning: Situation #2.
       (#<SIMPLE-WARNING 42744421> #<SIMPLE-WARNING 42744365>)
       (dolist (s saved) (format t "~&~A~%" s))
       Situation #3.
       Situation #1.
        NIL
See Also: Section 9.1.4.2 Restarts, Section 9.1.4.2.2 Interfaces to Restarts, invoke-restart, muffle-warning (function), warn Allegro CL Implementation Details: None.

© Franz Inc. All Rights Reserved - File last updated 2022-07-25