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] ; == ...