Throw value to a waiting catch.
If no catch is waiting the global error handling will send the
value to master.
If you throw an array with where the first index contains an error
message and the second index is a backtrace, (the output from
backtrace) then it will be treated exactly like a real error
by overlying functions.