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.