Since I am bridging Java classes and presenting them as Python classes, I decided to try to create a corresponding python class for every Jva classes accessed inside the python program. So far, everything is great .. until we get to exception handling.
Since I am creating classes, on the fly, I thought the easiest and most pythonic way to do it would be to create a metaclass. This is true also for the Java exception classes.
The problem arises when I try to raise one of those exception classes ... it sems Python will not allow classes that have a custom metaclass to be raised as exceptions! Even though those classes derive from Exception! To illustrate, try the following snippet :
class mc(type) : pass
class foo(Exception, object) : __metaclass__ = mc pass
try : raise foo, 'ex' except Exception, ex : print ex.__class__, ex
Note the above code has nothing to do with JPype. When I try to run the above, I get the following error :
exceptions.TypeError exceptions must be classes, instances, or strings (deprecated), not mc
Is there anything I can do to raise exception that have metaclasses? Maybe I can make my metaclass acceptable to "raise" somehow?
Thanks for any help anyone can provide.
Steve -- http://mail.python.org/mailman/listinfo/python-list