【发布时间】:2009-03-15 13:25:52
【问题描述】:
我想在 Python 中捕获并记录 MySQL 警告。例如,如果您在不存在此类数据库时提交'DROP DATABASE IF EXISTS database_of_armaments',MySQL 会向标准错误发出警告。我想捕捉并记录它,但即使在 try/else 语法中,警告消息仍然会出现。
try/except 语法确实捕获 MySQL 错误(例如,提交像 'DRP DATABASE database_of_armaments' 这样的错字)。
我已经尝试过<<except.MySQLdb.Warning>> -- 没有运气。我查看了警告模块,但不明白如何将其合并到 try/else 语法中。
具体来说,我如何使以下(或类似的)工作。
GIVEN:数据库“database_of_armaments”不存在。
try:
cursor.execute('DROP DATABASE IF EXISTS database_of_armaments')
except: <<WHAT DO I PUT HERE?>>
print 'There was a MySQL warning.'
<<AND what goes here if I want to get and manipulate information about the warning?>>
更新:
感谢 cmets。我试过这些,但它们没有用——但我一直在使用我为连接编写的 DatabaseConnection 类,以及它的 runQuery() 方法来执行。当我在类外创建连接和游标时,try/except 异常捕获了“编程错误”,并且除了 MySQLdb.ProgrammingError 之外的工作如宣传的那样。
所以现在我必须弄清楚我的类编码有什么问题。
感谢您的帮助。
【问题讨论】:
-
我没有找到任何有用的答案,但stackoverflow.com/a/2102315/91238 是。