一尘不染

捕获MySql警告

mysql

在我的python脚本中,我想使用MySql捕获“我的查询截断了列’xxx’的数据”警告。

我看到了一些建议以下代码的帖子,但它不起作用。

您是否知道在使用此代码之前是否必须导入某些特定模块或是否应调用某些选项/标志?

谢谢大家

阿菲格

import MySQLdb
try:
    cursor.execute(some_statement)
    # code steps always here: No Warning is trapped
    # by the code below
except MySQLdb.Warning, e:
    # handle warnings, if the cursor you're using raises them
except Warning, e:
    # handle warnings, if the cursor you're using raises them

阅读 282

收藏
2020-05-17

共1个答案

一尘不染

警告仅仅是:警告。他们被报告给(通常)stderr,但是没有做其他事情。您不能像异常一样捕获它们,因为它们没有被引发。

你可以,但是,配置怎么
有警告,并关闭它们或者将它们变成例外,使用warnings模块。例如,warnings.filterwarnings('error', category=MySQLdb.Warning)MySQLdb.Warning warnings成异常(在这种情况下,他们将使用您的尝试捕获/除外),或'ignore'根本不显示它们。您可以(也许应该)拥有比类别更多的细粒度过滤器。

2020-05-17