try(1/0, 42)                                                                => +Inf, err=<nil>
try(1+1, 42)                                                                => 2, err=<nil>
try { 1/0 } catch { 42 }                                                    => +Inf, err=<nil>
try { 1/0 } catch e { errtype(e) }                                          => +Inf, err=<nil>
try { [1,2,3][10] } catch e { errtype(e) }                                  => custom, err=<nil>
try { [1,2,3][10] } catch e { e.Message }                                   => index out of range: 10 (array length is 3), err=<nil>
try { throw("boom") } catch e { e.Message }                                 => boom, err=<nil>
try { throw("boom") } catch e is "boo" { "caught" }                         => caught, err=<nil>
try { throw("boom") } catch e is "nope" { "caught" }                        => <nil>, err=boom (1:7)
 | try { throw("boom") } catch e is "nope" { "caught" }
 | ......^
try { 1/0 } catch { 42 } finally { 99 }                                     => +Inf, err=<nil>
try { 5 } finally { 99 }                                                    => 5, err=<nil>
try { throw("x") } finally { 99 }                                           => <nil>, err=x (1:1)
 | try { throw("x") } finally { 99 }
 | ^
try { 1/0 } catch { retry }                                                 => +Inf, err=<nil>
retry                                                                       => <nil>, err=retry used outside of a catch block (1:1)
 | retry
 | ^
try { 1/0 } catch e { errtype(e) } finally { 7 }                            => +Inf, err=<nil>
errtype(nil)                                                                => none, err=<nil>
try(int("abc"), "conv")                                                     => conv, err=<nil>
try(int("abc"), errtype(throw("x")))                                        => <nil>, err=x (1:25)
 | try(int("abc"), errtype(throw("x")))
 | ........................^
try { 1 } catch { 2 } + 10                                                  => 11, err=<nil>
let x = try(1/0, 3); x * 2                                                  => +Inf, err=<nil>
try { throw({}.missing.deep) } catch e { errtype(e) }                       => custom, err=<nil>
try { try { throw("inner") } catch { throw("outer") } } catch e { e.Message } => outer, err=<nil>
try { 1/0 } catch { try { 1/0 } catch e is "zero" { "nested" } }            => +Inf, err=<nil>
