Ram*_*amy 3 python ironpython exception-handling
我可能是错的,但在IronPython中引发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()
Run Code Online (Sandbox Code Playgroud)
但是,我所看到的只是:
Traceback (most recent call last):
SystemError: The connection has been disabled.
Run Code Online (Sandbox Code Playgroud)
尝试:
import traceback
traceback.print_exc()
Run Code Online (Sandbox Code Playgroud)
而不是直接打印异常对象.在Python中,异常对象不直接保留在堆栈跟踪上 - 而是它们是sys.exc_info()中三个项目的一部分.
你也可以这样做:
import System
...
except System.Exception, e:
Run Code Online (Sandbox Code Playgroud)
并且您将获得一个普通的.NET异常对象而不是Python异常对象.