Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Newbie getting head around TRY/DISARM

From: jkinraid::clear::net::nz at: 15-Nov-2000 12:29

Hello Mat,
> IH> if error? set/any error try [ 0/0 ] [ > IH> error: disarm error > IH> print [ "Now you can savely work with: " mold error] > IH> ] > > This doesn't actually work though? Using true to force error to return > works though. (so I'm happy!) This just blows out with the actual error and fails to > trap it at all.
There are two problems with this piece of code. First, the error that occurs is a syntax error ('0/0' is an invalid date, '0 / 0' is an attempt to divide by zero, notice the space). And it appears you can't trap syntax errors -
>> error? try [0 / 0]
== true
>> error? try [0/0]
** Syntax Error: Invalid date -- 0/0. ** Where: (line 1) error? try [0/0] The second problem is that the set function takes a word (or block) as the argument. "set/any error" passes the contents of error to set. Try this - if error? set/any 'error try [ 0 / 0 ] [ error: disarm error print [ "Now you can savely work with: " mold error] ] Julian Kinraid