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)
