Disarm - Function Summary

Summary:

Returns the error value as an object.

Usage:

disarm error

Arguments:

error - The error argument. (must be: error)

Description:

DISARM allows access to the values of an error object. If the error is not disarmed, it will occur again immediately.

probe disarm try [1 + "x"]

make object! [
    code: 312
    type: 'script
    id: 'cannot-use
    arg1: 'add
    arg2: 'string!
    arg3: none
    near: [1 + "x"]
    where: 'do-out
]

The error object returned from DISARM can be used to determine the type of error and its arguments. For example in the case of a divide by zero error:

probe disarm try [1 / 0]

make object! [
    code: 400
    type: 'math
    id: 'zero-divide
    arg1: none
    arg2: none
    arg3: none
    near: [1 / 0]
    where: 'do-out
]

You might write a TRY block that handles the error after it has happened:

if error? err: try [
    value: 1 / 0
][
    err: disarm err
    either err/id = 'zero-divide [value: 0] [probe err quit]
]
print value
0

attempt - Tries to evaluate and returns result or NONE on error. error? - Returns TRUE for error values. trace - Enables and disables evaluation tracing. try - Tries to DO a block and returns its value or an error.

results matching ""

    No results matching ""