# error¶

## Purpose¶

Allows the user to generate a user-defined error code which can be tested quickly with the scalerr() function.

## Format¶

y = error(x)
Parameters

x (scalar) – in the range 0-65535.

Returns

y (scalar) – error code which can be interpreted as an integer with the scalerr() function.

## Examples¶

### Basic usage¶

// Set 'err_code' to contain a scalar error
// code, holding the value 28
err_code = error(28);

// Decode error code
err_num = scalerr(err_code);

print err_num;


The above code will print out the value:

28


### Example 2¶

The example below creates a simple procedure which computes the square root of positive inputs, but returns a scalar error code for negative inputs.

x_sqrt = mySqrt(-2);

// Check to see if 'x_sqrt' is a scalar error code
if scalmiss(x_sqrt);
print "Error code returned with value: "\$+ntos(scalerr(x_sqrt));
else;
print x_sqrt;
endif;

proc (1) = mySqrt(x);
local ret;

// If 'x' is negative, return
// a scalar error code
if x < 0;
ret = error(12);
else;
ret = sqrt(x);
endif;

retp(ret);
endp;


The code above will print out:

Error code returned with value: 12


## Remarks¶

• You can test to see if a variable is a scalar error code with the function scalmiss(). For example:

// Create scalar error code
x = error(4);

// Check to see if 'x' is a scalar error code
if scalmiss(x);
// If it is a scalar error code, print
// the error code
print scalerr(x);
endif;

• The user may assign any number in the range 0-65535 to denote particular error conditions. This number may be tested for as an error code by scalerr().

• The scalerr() function will return the value of the error code and so is the reverse of error. These user-generated error codes work in the same way as the intrinsic GAUSS error codes which are generated automatically when trap 1 is on and certain GAUSS functions detect a numerical error such as a singular matrix.

error(0);


is equal to the missing value code.

Functions scalerr(), trap, trapchk