2016-12-27 08:10:47 -08:00

38 lines
957 B
Plaintext

#pike __REAL_VERSION__
constant Generic = __builtin.GenericError;
constant Index = __builtin.IndexError;
constant BadArgument = __builtin.BadArgumentError;
constant Math = __builtin.MathError;
constant Resource = __builtin.ResourceError;
constant Permission = __builtin.PermissionError;
constant Decode = __builtin.DecodeError;
constant Cpp = __builtin.CppError;
constant Compilation = __builtin.CompilationError;
constant MasterLoad = __builtin.MasterLoadError;
constant ModuleLoad = __builtin.ModuleLoadError;
//! Returns an Error object for any argument it receives. If the
//! argument already is an Error object or is empty, it does nothing.
object mkerror(mixed error)
{
if (error == UNDEFINED)
return error;
if (objectp(error) && error->is_generic_error)
return error;
if (arrayp(error))
return Error.Generic(@error);
if (stringp(error))
return Error.Generic(error);
return Error.Generic(sprintf("%O", error));
}