Hi Frank, I would never guess, this could have worked. You really got it!

> Hi!
> 
> You can try this:
> 
> hard: func [
> "Hard function"
> fun [any-function! path!]
> args [block!]
> /local e e2 throw2
> ] [
> throw2: yes
> error? set/any 'e2 do does compose/deep [
> do [error? set/any 'e fun (args)]
> throw2: no
> ]
> if throw2 [set/any 'e get/any 'e2]
> if block? first third :hard [change/only third :hard "Hard"]
> if throw2 [change/only third :hard [throw]]
> return get/any 'e
> ]
> 
> CU,
> Frank
> 
> 
> 
> > ; Error test:
> > arg1: func [x] [return make error! x]
> > arg2: ["some error"]
> > probe disarm arg1 first arg2
> >
> >  The result is:
> >
> >  make object! [
> >      code: 800
> >      type: 'user
> >      id: 'message
> >      arg1: "some error"
> >      arg2: none
> >      arg3: none
> >      near: [return make error! x]
> >      where: none
> > ]
> >
> > ; Return test:
> > arg1: func [[throw] x] [return x]
> > arg2: [1]
> > test1: does [arg1 first arg2 2]
> > test1 ; == 1
> > test2: does [hard :arg1 arg2 2]
> > test2 ; == 2
> >


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to