The raw Python/C API has a protocol for allowing C extensions to use Python’s exception mechanism. As a user of PyD, you should never have to deal with this protocol. Instead, use PyD’s mechanisms for translating a Python exception into a D exception and vice versa.
check if a Python exception has been set, and if it has, throw a
PythonException. Clear the Python error code.
wrap a D delegate and set a Python error code if a D exception occurs. Returns a python-respected “invalid” value (null or -1), or the result of the delegate if nothing was thrown.
- If your code interfaces with python directly, you should probably
wrap it with
exception_catcher(uncaught D exceptions will crash the python interpreter).
- All wrapped functions, methods, constructors, etc, handle D and python exceptions already.
- If your code interfaces with python directly, you should probably wrap it with