attempt and try

First, you can evaluate the dangerous code in a block with attempt:

attempt [4 < "abc"] ;== none  

Instead of crashing with an error, this simply returns none, while well-behaving code simply executes and returns its result, such as attempt [4 * 7]     ;== 28.

Because attempt effectively discards the error, this is not suitable for production code. However, while developing, this can be used to flesh out the program's logic. Handling errors is best done in a second phase, but then you should definitely use something better than attempt, namely try.

The try word tries to evaluate a block, similar to do:

try [4 * 7]        ;== 28 ; normal evaluation resulttry [4 / 0]        ; *** Math Error: attempt to divide by zerotype? try [4 / 0]  ; == ...

Get Learn Red - Fundamentals of Red now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.