## report-error

Command invoked to process errors

### SYNOPSIS

(report-error head message obj)

### DESCRIPTION

Report-error is called by the interpreter when an error occurs. This procedure is written in Scheme and can be by an application which needs to handle redefined to handle errors. The head argument is a string which identify the kind of error. The head argument contains the error message and obj contains the object which causes the error (or the empty list when there is no object to incriminate).

The STk library includes a default report-error procedure that posts a dialog box containing the error message and offers the user a chance to see a stack trace showing where the error occurred and its associated environment.

If an error occurs while is report-error execution, the interpreter detect that the procedure is buggy and it redirect further messages on the standard error port.

Hereafter is a simple non-graphical error reporter.

    (define (report-error head message obj)
      (let ((port (current-error-port)))
        ;; Display message
        (format port "~A: ~A ~S\n\n"  head message obj)
        ;; Display stack
        (let ((stack (%get-eval-stack))
    	  (env   (%get-environment-stack)))
          (for-each (lambda (x y) (format port "~A ~A\n" x (uncode y)))
    		env
    		stack))))

Back to the STk main page