Skip to main content
`Ctrl`+`K`
scipy.special.

# seterr

scipy.special.seterr(**kwargs)

  Set how special-function errors are handled.

  Parameters:
    **kwargs

      The following may be passed as keyword arguments:

      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 pytest import raises
      >>> sc.gammaln(0)
      inf
      >>> olderr = sc.seterr(singular='raise')
      >>> with 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 raises(sc.SpecialFunctionError):
      ...     sc.spence(-1)
      ...
      >>> _ = sc.seterr(**olderr)