diff options
| author | henesy <henesy.dev@gmail.com> | 2019-03-11 23:22:22 -0500 |
|---|---|---|
| committer | henesy <henesy.dev@gmail.com> | 2019-03-11 23:22:22 -0500 |
| commit | c818e95dc18d91228358fc9750d29dcd8cc9b488 (patch) | |
| tree | 6c16d4286b607c5ead4a59134be8cae60f9fde75 /Exceptions/README.md | |
| parent | ce87687bbc9586ae0ecb1ea646596a76410ef568 (diff) | |
add exceptions example and explanation
Diffstat (limited to 'Exceptions/README.md')
| -rw-r--r-- | Exceptions/README.md | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/Exceptions/README.md b/Exceptions/README.md index df654d3..9350a28 100644 --- a/Exceptions/README.md +++ b/Exceptions/README.md @@ -6,14 +6,39 @@ The example in this section is a derivative of the function reference summary in ## Source -### +### exceptions.b:17,26 +This section calculates numbers within the fibonacci sequence to a given interval. In this case, the first 5 numbers are calculated within the sequence. +Note the call to the `raise` keyword after the fibonacci calculations have completed, but before the program exits. -## Demo +### exceptions.b:31,47 + +The `fibonacci()` function attempts to perform a `fib()` call and, if an exception `e` is thrown, attempts to handle the exception in a manner depending on the exception type. + +Note that the attempted operation is wrapped in a `{ ... }` block. + +### exceptions.b:49,63 +The `raises` clause allows for warnings to be generated for un-caught exception potential within a program. Note that these exception types can be user-defined. + +The `FIB` exception type is defined at: exceptions.b:12 + +## Demo + ; limbo exceptions.b + ; exceptions + F(0) = 1 + F(1) = 1 + F(2) = 2 + F(3) = 3 + F(4) = 5 + sh: 798 "Exceptions":going down! + ; ## Exercises -- +- Try removing the raise for "going down!". +- Remove the `i < 5` portion of the for loop, how many values are printed and why? +- Try removing the exception-catching block from around calls to `fib()`, do you get warnings? +- Try changing the raise type within `fib()`, does `fibonacci()` handle the exception `e` differently? |
