[IronPython] Dealing with exceptions in an extension module
Jeff Hardy
jdhardy at gmail.com
Fri Apr 30 23:49:57 CEST 2010
I'm trying to fix up the exceptions for the _sqlite3 module I'm
implementing. The dbapi spec (PEP 249) requires a very specific
exception hierarchy, including exceptions derived from StandardError.
My initial version just used C# Exception classes, but StandardError
is not a normal class, so that was insufficient. I looked into how the
existing modules did it (using PythonContext.EnsureModuleException)
and started to implement that but I've run up against a bit of a
roadblock: PythonExceptions.CreateThrowable is internal. It's not a
problem for anything in IronPython.Modules, of course, because of the
accursed InternalsVisibleToAttribute, but that doesn't help me much
:).
Is there a public way to create and throw a Python exception (i.e. a
BaseException instance)? For now I'm just using reflection, but I
would like a better way.
On a related note, there's too much stuff that's used in
IronPython.Modules but is internal in IronPython - it makes it hard to
figure out the "proper" (public) way to do things.
- Jeff
More information about the Ironpython-users
mailing list