[EMAIL PROTECTED] napsal(a):

>O'k! 
>I am unshure how in this case the works 'err!
>Is the refinement /local err is for generating error messages?
>
>brgds
>Janeks
>
>  
>
/local is a refinement signaling that the variables following it are 
local variables. That means, that 'err is a local variable used to 
"store" intermediate result.

Below is a more "polished" Default version. The Fault block may use 
Error variable "knowing" the error value.

    default: func [
        {Execute code. If error occurs, execute fault.}
        [throw]
        code [block!] {Code to execute}
        fault [block!] {Error handling code}
    ] [
        either error? set/any 'code try code [
            fault: make function! [[throw] error [error!]] fault
            fault code
        ] [get/any 'code]
    ]

Examples:

 >> default [join "apples" "pears"]["no good"]
== "applespears"
 >> default [join "apples" "pears" / 0]["no good"]
== "no good"
 >> default [join "apples" "pears" / 0][print mold disarm error]

make object! [
    code: 312
    type: 'script
    id: 'cannot-use
    arg1: 'divide
    arg2: 'string!
    arg3: none
    near: [join "apples" "pears" / 0]
    where: 'default
]

-Ladislav
-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to