Minilisp.pm/t/throw_catch.t

32 lines
815 B
Raku

(expect "catch - without throw"
(equal 'ok
(catch 'exc1
'ok)))
(expect "catch - with throw"
(equal 'ok
(catch 'exc2
(throw 'exc2 'ok)
'fail)))
(expect "catch - throw caught by inner catch"
(equal 'ok
(catch 'exc3a
(catch 'exc3b
(throw 'exc3b 'fail))
'ok)))
(expect "catch - throw caught by outer catch"
(equal 'ok
(catch 'exc4a
(catch 'exc4b
(throw 'exc4a 'ok))
'fail)))
(expect "catch - inner catch shadows outer catch"
(equal 'ok
(catch 'exc5
(catch 'exc5
(throw 'exc5 'fail))
'ok)))