4.14 Exceptions
TBoS p.123-125, SD
'error' has the same formatting features as 'output' and uses a string to raise an error as an exception.
'trap-error' takes an expression e as its first argument and a function f as its second and evaluates e returning
the normal form. But if an exception is raised from e, the exception is sent as an argument to f. 'error-to-string'
converts any exception to the string from which it was derived.
(0-) (error "this is an error message, followed by a new line~%")
this is an error message, followed by a new line
(1-) (trap-error (error "this is an error message, followed by a new line~%") (/. E "I trapped the error."))
"I trapped the error."
(2-) (trap-error (error "this is an error message, followed by a new line~%") (/. E (error-to-string E)))
"this is an error message, followed by a new line
" |
|
1. Introduction
2. License
3. History
4. The Core Language
4.1 Base Types
4.1.1 Symbols
4.1.2 Strings
4.1.3 Numbers
4.2 Function Applications
4.3 The Top Level
4.4 Arithmetic
4.5 Comments
4.6 Sequences
4.6.1 Lists
4.6.2 Tuples
4.6.3 Vectors
4.7 lambda and let
4.8 Global Assignments
4.9 Higher Order Functions
4.10 Lazy Evaluation
4.11 I/O
4.12 Loading Files
4.13 Streams
4.14 Exceptions
4.15 Hashing
4.16 Property Lists
4.17 Eval
5 Defining Functions
5.1 Partial Functions
5.2 List Handling Functions
5.3 String Handling Functions
5.4 Tuple Handling Functions
5.5 Vector Handling Functions
5.6 Guards
5.7 Backtracking
5.8 Writing in Kλ
5.9 Macros
6. Packages
7. Shen-YACC
7.1 Recognisor Generator
7.2 Semantic Actions
8. Shen Prolog
8.1 Sample Programs
9. Types
9.1 Types and Constructors
9.2 Functions and Types
9.3 Synonyms
10 Sequent Calculus
10.1 Recursive Types
10.2 Exotic Types
10.2.1 Dependent Types
10.2.2 Negative Types
10.2.3 Subtypes
10.2.4 The Type of All Sets
11 Glossary of Functions
12 The Syntax of Shen |