Throw value to a waiting catch .
If no catch is waiting the global error handling will send the
value to master()->handle_error() .
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.