Struct cpython::PyErr [−][src]
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
pub fn new<T, V>(py: Python<'_>, value: V) -> PyErr where
T: PythonObjectWithTypeObject,
V: ToPyObject,
pub fn new<T, V>(py: Python<'_>, value: V) -> PyErr where
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"));
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.
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 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()
.
Trait Implementations
Converts PythonObjectDowncastError
to Python TypeError
.
Performs the conversion.