Next: Mouse Operations Up: Viewport Graphics Previous: A More Complicated Example

# Protecting Graphics Operations

To guarantee the proper closing of viewports in cases of errors, especially when a program manages several viewports simultaneously, a programmer should use `dynamic-wind:`

    > (let ([w (open-viewport "hello" 100 100)])
        (dynamic-wind
          ; what we want to happen first: nothing
          void

          ; the main program (errors constrained to this piece)
          (lambda () (draw-pixel 13))  ; an error

          ; what we would like to happen, whether the main program finishes
          ; normally or not
          (lambda () (close-viewport w))))