En Wed, 24 Dec 2008 13:42:38 -0200, Ross <rlig...@gmail.com> escribió:

For a project that I am doing, it would be useful to have an exception
class that stores some additional data along with the message.
However, I want to be able to store a couple pointers to C++ classes,
so I can't just use an exception created with PyExc_NewException.

In fact you can, you could store those pointers as attributes of the exception object, using a PyCObject. Accessing those attributes isn't as easy as doing exc->field, but I think it's easy enough. Inheriting from some exception type requires you to define the type structure and fill it right, and IMHO is a lot harder.

If
I were to subclass the built-in Exception type, I would need to have
access to the PyExc_ExceptionObject, but the headers only give
PyExc_Exception, the type object.  This seems like a rather
straightforward task, but I can't seem to find any documentation for
it.  Does anyone know how to do this?  Thanks!

Perhaps there is a misunderstanding here. To subclass a type, you need the type, not an instance of such type. The "Exception" class you use in Python code is "PyExc_Exception" in C code. Usually one would inherit a subclass, RuntimeError by example, so use PyExc_RuntimeError as the base type.

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to