在我的脚本中,如果出现任何异常,我会尝试使用查询将其保存到数据库中
try:
<-- Code raise Exception -->
except Exception ,e: #Not sure which exception will get thrown
saveToDB({'error_info':exc_info()[1]}, id=1)
def saveToDB(exp, id):
vals = ','.join(["%s='%s'" %(k,v) for k,v in exp.iteritems()])
query = "update trace_redo_lines set %s where id=%s" % (vals , id)
res = cr.execute(query)
执行假设 exeption 后是
Traceback (most recent call last):
File "auto.py", line 22, in Upload
with open(self.log_path,'r') as out:
IOError: [Errno 2] No such file or directory: u'Z:\\Doc\\temp.txt'
在调试时我发现 cmd 上的异常打印如下
IOError: [Errno 2] 没有这样的文件或目录:u'Z:\\Doc\\temp.txt'
所以现在我在函数 saveToDB() 中传递了这个异常,但是在保存查询时会引发错误
*** ProgrammingError: ('42000', "[42000] [Microsoft][SQL Native Client][SQL Server]Incorrect syntax near '\\'. (102) (SQLE
cDirectW)")
所以我无法以正确的格式制作异常,以便它可以安全地进入数据库。
他们是否有任何解决方法可以轻松格式化异常以保存数据库。
驱动程序:pyodbc,python 2.6
谢谢大家。