SYNOPSIS mixed catch(string expr) DESCRIPTION Evaluate expr. If there is no error, 0 is returned. If there is an error, a string (with a leading '*') will be returned. The functions throw(value) and raise_error(value) can also be used to immediately return any value, except 0. The catch() is somewhat costly, and should not be used anywhere. Rather, use it at places where an error would destroy consistency. Catch is not really an efun, but a compiler directive. EXAMPLE object obj; string err; if (err = catch(obj = clone_object("/foo/bar/baz"))) write("Cannot clone object, reason:"+err"+\n"); SEE ALSO throw(E), raise_error(E)