1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
## parse empty try string
set test eval-catch-1
set prog_output "^$"
do_test eval-catch-1.m
## parse empty catch string
set test eval-catch-2
set prog_output "^$"
do_test eval-catch-2.m
## suppress error; do not execute code after error
set test eval-catch-3
set prog_output "^ans = 2"
do_test eval-catch-3.m
## execute catch clause
set test eval-catch-4
set prog_output "^ans = 1"
do_test eval-catch-4.m
## lasterr works in and out of the catch string.
set test eval-catch-5
set prog_output "ans = error: `a' undefined.*\n\nans = error: `a' undefined"
do_test eval-catch-5.m
## throw a user-defined error
set test eval-catch-6
set prog_output "ans = error: user-defined error\n\nans = error: user-defined error"
do_test eval-catch-6.m
## pass lasterr to user-defined subroutine
set test eval-catch-7
set prog_output "^ans = <error: `a' undefined.*\n>"
do_test eval-catch-7.m
## handle nested eval: eval in try-string
set test eval-catch-8
set prog_output "ans = error: `a' undefined.*\n\nans = error: `b' undefined.*\n$"
do_test eval-catch-8.m
## handle nested eval: eval nested in catch-string
set test eval-catch-9
set prog_output "ans = error: `b' undefined.*\n\nans = error: `b' undefined.*\n$"
do_test eval-catch-9.m
## re-throw an error
set test eval-catch-10
set prog_output "ans = error: rethrow: error: `a' undefined.*\n"
do_test eval-catch-10.m
|