[REBOL] Re: Help me, Obi Reb Kenobi, you're my only hope!
From: rotenca:telvia:it at: 3-Sep-2002 16:19
Hi Ladislav,
> the behaviour seems to have more to do with function attributes:
> See the following code samples:
>
> type? do does [type? do func [] [return make error! ""]] ; == datatype!
>
> type? do does [type? do func [[throw]] [return make error! ""]] ; > error!
>
> type? do does [type? do func [[]] [return make error! ""]] ; == error!
>
> The empty attribute is interpreted like the [throw] attribute in this case!
> It looks like an implementation issue.
Yes, we spoke about that some time ago.
But my previous statement:
no-loop error! seems to have the same beaviour which has any others error,
when a function has at least the attribute []:
is wrong: no-loop is uncatchable at all, and undisarmable, while orthers
errors in functions with the attribute [] or [throw] can be catched and
disarmed with a function wrapper.
BTW, no-loop is the only one error wich show this behaviour. Neither Syntax
error have its behaviour.
I think that this could be related to the Break behaviour which ignores
functions bound:
loop 2 [print 1 do does [break]] ;= 1
Break does not requires [throw] to throw the break to the upper function. So a
Break error can only happens at the higher level of code execution and never
inside user code.
> Ciao
> Ladislav
---
Ciao
Romano