pub struct PyErr {
    pub ptype: PyObject,
    pub pvalue: Option<PyObject>,
    pub ptraceback: Option<PyObject>,
}
Expand description

Represents a Python exception that was raised.

Fields

ptype: PyObject

The type of the exception. This should be either a PyClass or a PyType.

pvalue: Option<PyObject>

The value of the exception.

This can be either an instance of ptype, a tuple of arguments to be passed to ptype’s constructor, or a single argument to be passed to ptype’s constructor. Call PyErr::instance() to get the exception instance in all cases.

ptraceback: Option<PyObject>

The PyTraceBack object associated with the error.

Implementations

Creates a new PyErr of type T.

value can be:

  • NoArgs: the exception instance will be created using python T()
  • a tuple: the exception instance will be created using python T(*tuple)
  • any other value: the exception instance will be created using python T(value)

Panics if T is not a python class derived from BaseException.

Example: return Err(PyErr::new::<exc::TypeError, _>(py, "Error message"));

Gets whether an error is present in the Python interpreter’s global state.

Creates a new exception type with the given name, which must be of the form <module>.<ExceptionName>, as required by PyErr_NewException.

base can be an existing exception type to subclass, or a tuple of classes dict specifies an optional dictionary of class variables and methods

Retrieves the current error from the Python interpreter’s global state. The error is cleared from the Python interpreter. If no error is set, returns a SystemError.

Creates a new PyErr.

obj must be an Python exception instance, the PyErr will use that instance. If obj is a Python exception type object, the PyErr will (lazily) create a new instance of that type. Otherwise, a TypeError is created instead.

Construct a new error, with the usual lazy initialization of Python exceptions. exc is the exception type; usually one of the standard exceptions like py.get_type::<exc::RuntimeError>(). value is the exception instance, or a tuple of arguments to pass to the exception constructor.

Print a standard traceback to sys.stderr.

Print a standard traceback to sys.stderr.

Return true if the current exception matches the exception in exc. If exc is a class object, this also returns true when self is an instance of a subclass. If exc is a tuple, all exceptions in the tuple (and recursively in subtuples) are searched for a match.

Normalizes the error. This ensures that the exception value is an instance of the exception type.

Retrieves the exception type.

Retrieves the exception instance for this error. This method takes &mut self because the error might need to be normalized in order to create the exception instance.

Writes the error back to the Python interpreter’s global state. This is the opposite of PyErr::fetch().

Issue a warning message. May return a PyErr if warnings-as-errors is enabled.

Trait Implementations

Formats the value using the given formatter. Read more

Converts PythonObjectDowncastError to Python TypeError.

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.