# 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.

See also

Functions `scalerr()`, trap, trapchk