aboutsummaryrefslogtreecommitdiff
path: root/spec/primitive.md
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-04-16 15:44:04 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-04-16 15:44:04 -0400
commit07bf9008a0698d2ada09fe7db471adb349f1703c (patch)
tree693716dd901e4f96781e188763714058628b2b57 /spec/primitive.md
parent9f437d3468c9078c46d30da68ac3821cacb045e5 (diff)
Specification for Catch (⎊)
Diffstat (limited to 'spec/primitive.md')
-rw-r--r--spec/primitive.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/spec/primitive.md b/spec/primitive.md
index 386b0dcf..dc089cfa 100644
--- a/spec/primitive.md
+++ b/spec/primitive.md
@@ -75,6 +75,8 @@ Inferred properties are specified in [their own document](inferred.md), not in t
- **Assert** (`!`) causes an error if the argument is not `1`. If `𝕨` is provided, it gives a message to be associated with this error (which can be any value, not necessarily a string).
+- **Catch** (`⎊`) evaluates `𝔽` on the arguments `𝕨` (if present) and `𝕩`. If `𝔽` completes without error it returns the result, but if evaluation of `𝔽` results in an error then the error is suppressed, and Catch evaluates `𝔾` on the arguments and returns the result. Errors in `𝔾` are not caught. Catch only prevents evaluation errors, and not syntax errors: these are considered errors in the program as a whole rather than any particular part of it.
+
## Commentary on other primitives
As noted above, see [reference.bqn](reference.bqn) for the authoritative definitions. Commentary here gives an overall description and highlights implementation subtleties and edge cases.