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

[REBOL] Problem with try [ open/direct/binary tcp://... ] Re:(4)

From: eventi:nyic at: 2-Oct-2000 17:43

> e wrote: > > It looks like both would work, according to 'help try'... > > DESCRIPTION: > > Tries to DO a block and returns its value or an error. > > > gp: try [ open/... ] > > and > > try [ gp: open/... ] > > > > should be equivalent, no?
Let me follow with what I think is going on, and you can correct me...
> You're slightly misreading the description. Have a look at the simple > example below: > > >> try [1 / 0] > ** Math Error: Attempt to divide by zero. > ** Where: 1 / 0
This actually reduces to an error, no surprise
> >> error? try [1 / 0] > == true > >> error? err: try [1 / 0] > == true
as demonstrated here... But if I didn't catch the error with 'error? it would ab-end?
> >> probe err > ** Math Error: Attempt to divide by zero. > ** Where: 1 / 0 > >> err: none > == none > >> error? try [err: 1 / 0] > == true > >> probe err > none > == none
I think I get it... When the expression is reduced down, if the result is type error!, it ab ends. So I could have said: if not error? try [gp: open/direct/binary probe join tcp:// [ip ":" port]] [ insert gp "GNUTELLA CONNECT/0.4^/^/"] And indeed, it works... Man this language is addictive!!!