(sigil exceptions)
(sigil exceptions) - Exception Handling (DEPRECATED)
This module is deprecated. Use (sigil error) instead. This module re-exports all symbols from (sigil error) for backward compatibility.
Exports
make-exceptionprocedureCreate an exception with the given kind, message, and irritants.
Re-exported from (sigil core)
make-exception-with-traceprocedureCreate an exception with stack trace.
Re-exported from (sigil core)
exception?procedureCheck if obj is an exception.
Re-exported from (sigil core)
exception-kindprocedureGet the kind of an exception (e.g., 'error, 'type-error).
Re-exported from (sigil core)
exception-messageprocedureGet the message from an exception.
Re-exported from (sigil core)
exception-irritantsprocedureGet the irritants (additional data) from an exception.
Re-exported from (sigil core)
exception-stack-traceprocedureGet the stack trace from an exception.
Re-exported from (sigil core)
raiseprocedureRaise an exception (non-continuable). Aborts to the nearest exception handler.
Re-exported from (sigil core)
raise-continuableprocedureRaise a continuable exception. The handler can return a value to continue execution.
Re-exported from (sigil core)
errorprocedureConvenience function to raise an error exception. (error "message" irritant ...)
Re-exported from (sigil core)
with-exception-handlerprocedureInstall an exception handler and execute thunk (R6RS style). Handler is a procedure taking the exception. Thunk is the body to execute.
Re-exported from (sigil core)
current-exception-handlerprocedureGet the current exception handler.
Re-exported from (sigil core)
make-errorprocedureCreate a generic error exception.
(raise (make-error "Something went wrong"))
(raise (make-error "Invalid input" input-value))Re-exported from (sigil error)
error?procedureTest if an exception is a generic error.
(guard (exn
((error? exn) "generic error")
(else "other"))
(raise (make-error "oops")))
; => "generic error"Re-exported from (sigil error)
make-type-errorprocedureCreate a type error exception.
Use when a value has the wrong type.
(raise (make-type-error "Expected a number" 'number "hello"))Re-exported from (sigil error)
type-error?procedureTest if an exception is a type error.
(guard (exn
((type-error? exn) "type mismatch")
(else "other"))
(check-type x))Re-exported from (sigil error)
make-range-errorprocedureCreate a range error exception.
Use when a value is outside allowed bounds.
(raise (make-range-error "Index out of bounds" 10 0 5))Re-exported from (sigil error)
range-error?procedureTest if an exception is a range error.
(guard (exn
((range-error? exn) "out of bounds")
(else "other"))
(vector-ref v 100))Re-exported from (sigil error)
make-arity-errorprocedureCreate an arity error exception.
Use when a function receives wrong number of arguments.
(raise (make-arity-error "Wrong number of arguments" 2 5))Re-exported from (sigil error)
arity-error?procedureTest if an exception is an arity error.
(guard (exn
((arity-error? exn) "wrong arg count")
(else "other"))
(apply my-func wrong-args))Re-exported from (sigil error)
guardsyntaxRe-exported from (sigil error)
print-exceptionprocedurePrint an exception to standard output.
(guard (exn
(else (print-exception exn)))
(error "failed"))Re-exported from (sigil error)
format-exceptionprocedureFormat an exception as a human-readable string.
Includes the error kind, message, irritants, and stack trace.
(guard (exn
(else (display (format-exception exn))))
(error "something failed"))
; Error (error): something failed
;
; Stack trace (most recent call first):
; 0: my-function
; at main.sgl:42:5Re-exported from (sigil error)
format-stack-traceprocedureFormat a stack trace as a string.
By default, only shows frames with named functions, hiding anonymous lambdas to reduce noise from macro expansion and internal implementation. Pass #t to show all frames including anonymous ones.
(format-stack-trace (exception-stack-trace exn))
; => "0: my-function\n at main.sgl:42:5\n ..."
(format-stack-trace (exception-stack-trace exn) #t) ; show allRe-exported from (sigil error)