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