#### Previous topic

scipy.special.geterr

#### Next topic

scipy.special.errstate

# scipy.special.seterr

`scipy.special.``seterr`()

  Set how special-function errors are handled.

  Parameters:

  all : {‘ignore’, ‘warn’ ‘raise’}, optional

  > Set treatment for all type of special-function errors at once. The options are:

  > - ‘ignore’ Take no action when the error occurs
  > - ‘warn’ Print a `SpecialFunctionWarning` when the error occurs (via the Python `warnings` module)
  > - ‘raise’ Raise a `SpecialFunctionError` when the error occurs.

  > The default is to not change the current behavior. If behaviors for additional categories of special-function errors are specified, then `all` is applied first, followed by the additional categories.

  singular : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for singularities.

  underflow : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for underflow.

  overflow : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for overflow.

  slow : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for slow convergence.

  loss : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for loss of accuracy.

  no_result : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for failing to find a result.

  domain : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for an invalid argument to a function.

  arg : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for an invalid parameter to a function.

  other : {‘ignore’, ‘warn’, ‘raise’}, optional

  > Treatment for an unknown error.

  Returns:

  olderr : dict

  > Dictionary containing the old settings.

  See also

  `geterr`
    get the current way of handling special-function errors
  `errstate`
    context manager for special-function error handling
  `numpy.seterr`
    similar numpy function for floating-point errors

  Examples

      >>> import scipy.special as sc
      >>> from numpy.testing import assert_raises
      >>> sc.gammaln(0)
      inf
      >>> olderr = sc.seterr(singular='raise')
      >>> with assert_raises(sc.SpecialFunctionError):
      ...     sc.gammaln(0)
      ...
      >>> _ = sc.seterr(**olderr)

  We can also raise for every category except one.

      >>> olderr = sc.seterr(all='raise', singular='ignore')
      >>> sc.gammaln(0)
      inf
      >>> with assert_raises(sc.SpecialFunctionError):
      ...     sc.spence(-1)
      ...
      >>> _ = sc.seterr(**olderr)