How to catch an exception in python and get a reference to the exception, WITHOUT knowing the type? -
i'm wondering how can catch any raised object (i.e. type not extend exception), , still reference it.
i came across desire when using jython.   when calling java method, if method raises exception, not extend python's exception class, block not catch it:
try:     # call java lib raises exception here except exception, e:     # never entered   i can this, have no access exception object raised.
try:     # call java lib raises exception here except:     # enter here, there's no reference exception raised   i can solve importing java exception type , catching explicitly, makes difficult/impossible write generic exception handling wrappers/decorators.
is there way catch arbitrary exception , still reference in except block?
i should note i'm hoping exception handling decorator making usable python projects, not jython projects.  i'd avoid importing java.lang.exception because makes jython-only.  example, figure can (but haven't tried it), i'd avoid if can.
try:     # function may running jython , may raise java exception except (exception, java.lang.exception), e:     # imagine work, makes code jython-only      
you can reference exceptions using sys module. sys.exc_info tuple of type, instance , traceback.
import sys  try:     # call java lib raises exception here except:     instance = sys.exc_info()[1]      
Comments
Post a Comment