1 Exception utilities
2 Number utilities
3 String utilities
4 Bytes utilities
5 Symbol utilities
6 List utilities
7 PLT 4x hash utilities
8 PLT 3x hash utilities
9 Contract utilities
10 File and path utilities
11 Parameter utilities
12 Syntax utilities
13 SRFI19 time utilities
14 Scribble utilities
15 Generators
16 Generators (short names)
17 Pipelines
18 Write-through cache
19 Yieldable procedures
20 Debugging tools
21 Profiling tools
22 Logging tools
On this page:


1 Exception utilities

 (require (planet untyped/unlib/exn))

Utilities for raising, handling and printing exceptions.

(display-exn exn)  void?

  exn : exn?

Prints the message and stack trace of exn to the current output port. Re-provided from "text-ui.ss" in SchemeUnit.


  > (with-handlers ([exn? display-exn])

      (error "Oops!"))



   === context ===

  /usr/local/plt/collects/scheme/sandbox.ss:456:4: loop



(raise-exn id message arg ...)

Raises an exception with a default set of continuation marks. id is the identifier of the exception’s structure type transformer binding (e.g. exn or exn:fail). message and args are passed to the exception’s constructor, along with the value of current-continuation-marks.


  > (with-handlers ([exn? pretty-print])

      (raise-exn exn:fail "Oops!"))




  > (with-handlers ([exn? pretty-print])

      (raise-exn exn:fail:syntax "Oops!" (list #'a #'b #'c)))







(reraise-exn old-exn new-exn new-message arg ...)

Raises new-exn with a message of:

  (string-append (exn-message old-exn) ": " new-message)

and the same continuation marks as old-exn. Any additional args are passed to the constructor of new-exn.


  > (with-handlers ([exn? pretty-print])

      (with-handlers ([exn? (lambda (e)

                              (reraise-exn e exn:fail

                                "Looks serious"))])

        (raise-exn exn "Oops!")))


    "Looks serious: Oops!"