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: PyObjectThe 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
sourceimpl PyErr
 
impl PyErr
sourcepub fn new<T, V>(py: Python<'_>, value: V) -> PyErrwhere
    T: PythonObjectWithTypeObject,
    V: ToPyObject,
 
pub fn new<T, V>(py: Python<'_>, value: V) -> PyErrwhere
    T: PythonObjectWithTypeObject,
    V: ToPyObject,
Creates a new PyErr of type T.
value can be:
NoArgs: the exception instance will be created using pythonT()- 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"));
sourcepub fn occurred(_: Python<'_>) -> bool
 
pub fn occurred(_: Python<'_>) -> bool
Gets whether an error is present in the Python interpreter’s global state.
sourcepub fn new_type(
    py: Python<'_>,
    name: &str,
    base: Option<PyObject>,
    dict: Option<PyObject>
) -> PyType
 
pub fn new_type(
    py: Python<'_>,
    name: &str,
    base: Option<PyObject>,
    dict: Option<PyObject>
) -> PyType
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
sourcepub fn fetch(py: Python<'_>) -> PyErr
 
pub fn fetch(py: Python<'_>) -> PyErr
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.
sourcepub fn from_instance<O>(py: Python<'_>, obj: O) -> PyErrwhere
    O: PythonObject,
 
pub fn from_instance<O>(py: Python<'_>, obj: O) -> PyErrwhere
    O: PythonObject,
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.
sourcepub fn new_lazy_init(exc: PyType, value: Option<PyObject>) -> PyErr
 
pub fn new_lazy_init(exc: PyType, value: Option<PyObject>) -> PyErr
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.
sourcepub fn print_and_set_sys_last_vars(self, py: Python<'_>)
 
pub fn print_and_set_sys_last_vars(self, py: Python<'_>)
Print a standard traceback to sys.stderr.
sourcepub fn matches<T>(&self, py: Python<'_>, exc: T) -> boolwhere
    T: ToPyObject,
 
pub fn matches<T>(&self, py: Python<'_>, exc: T) -> boolwhere
    T: ToPyObject,
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.
sourcepub fn normalize(&mut self, py: Python<'_>)
 
pub fn normalize(&mut self, py: Python<'_>)
Normalizes the error. This ensures that the exception value is an instance of the exception type.
sourcepub fn instance(&mut self, py: Python<'_>) -> PyObject
 
pub fn instance(&mut self, py: Python<'_>) -> PyObject
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.
Trait Implementations
sourceimpl<'p> From<PythonObjectDowncastError<'p>> for PyErr
 
impl<'p> From<PythonObjectDowncastError<'p>> for PyErr
Converts PythonObjectDowncastError to Python TypeError.