我正在使用this scrapy管道。如果insert_record函数中的sql中有任何错误,它将以静默方式失败。例如,如果列名拼写错误,例如

def _insert_record(self, tx, item):
        print "before tx.execute"
        result = tx.execute(
        """ INSERT INTO table(col_one, col_typo, col_three) VALUES (1,2,3)"""
        )
        print "after tx.execute"
        if result > 0:
            self.stats.inc_value('database/items_added')


那么“执行前”之后什么也不会输出。有一个handle_error方法,但是没有被调用。如何捕获和处理此类错误?

最佳答案

只需用try包围它...除了

try:
    result = tx.execute(
    """INSERT INTO table(col_one, col_typo, col_three) VALUES (1,2,3)"""
    )
except Exception,e:
    print str(e)

关于mysql - 使用MySQL与扭曲的adbapi和scrapy进行异常处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34054094/

10-11 19:37