其余的铁血运动异常在哪里?

我可能是错的,但在Iron
Python中引发SystemError时,我似乎只得到不完整的堆栈跟踪和异常消息.我这样做:

                try:
                    with SQLConnection(DATASOURCES[SCHEDULEDB]) as db:
                        db.execute_sql( command + ' ' + ','.join(block) + ';' )
                except Exception, e:
                    print 'caught an exception'
                    print "Unexpected error:", sys.exc_info()[0]
                    print e
                    raise
                finally:
                    db.close()
                    engine.close()

但是,我所看到的只是:

Traceback (most recent call last):
SystemError: The connection has been disabled.

最佳答案 尝试:

import traceback
traceback.print_exc()

而不是直接打印异常对象.在Python中,异常对象不直接保留在堆栈跟踪上 – 而是它们是sys.exc_info()中三个项目的一部分.

你也可以这样做:

import System
...

except System.Exception, e:

并且您将获得一个普通的.NET异常对象而不是Python异常对象.

点赞