Python 异常处理:多次处理异常

Python 异常处理:多次处理异常,python,mysql,exception,mysql-python,Python,Mysql,Exception,Mysql Python,我有一个python脚本,它从internet(从URL列表)下载某些数据,并将其存储在MySQL数据库中。我的代码大致如下: try: con = mdb.connect(host = 'localhost', user = 'root', passwd = 'gatech', db ='SpecialProb', charset = 'utf8'); cur = con.cursor() print " Database Connection Parameters s

我有一个python脚本,它从internet(从URL列表)下载某些数据,并将其存储在MySQL数据库中。我的代码大致如下:

try:
    con = mdb.connect(host = 'localhost', user = 'root', passwd = 'gatech', db ='SpecialProb', charset = 'utf8');
    cur = con.cursor()
    print " Database Connection Parameters set"
except mdb.Error, e:  
    print "Error %d: %s" % (e.args[0],e.args[1])
    sys.exit(1)
try:
    for item in listURLs[index:]:
        try:
            r2 = requests.get(item)
        except:
            print "Could not fetch data"
            print "Exception: ", sys.exc_info()[0]
            continue

         ## Some code to fetch Name, ID from the internet, which I have tested and which works correctly. ##
         try:
             cur.execute("INSERT into TABLENAME (NAME, ID" 
             ") VALUES (%s, %s)",
             (totalName, ID))

             print("Value inserted in database.\n")
             countInsert += 1;
             con.commit() 
         except mdb.IntegrityError:
             print "Most likely cause: Database already contains this entry."
             print "Message from system: "
             print "Error %d: %s\n" % (e.args[0],e.args[1])
             continue
except:
    print "'For loop exception: ", sys.exc_info()[0]        
    sys.exit(0)
我获取的数据可能是重复的,我不希望重复的数据被插入数据库,代码应该在下一次迭代中蚀刻下一个数据,而不是存储数据。因此,除了mdb.IntegrityError:行之外,我还有
行来处理重复项

但是,在捕捉到重复条目的异常后,代码不再进行下一次迭代,而是转到我为
for
循环设置的
except
。 以下是我得到的:

Most likely cause: Database already contains this entry. 
Message from system:
'For loop exception:  <type 'exceptions.NameError'>
最可能的原因:数据库已包含此条目。
来自系统的消息:
'对于循环异常:
为什么会发生这种情况?我如何防止这种情况发生


非常感谢

您的e将不会被定义,从而导致except块中出现异常。
使用
mdb.IntegrityError,e
就像你对
所做的一样,除了mdb.Error,e

你能不能1)修复缩进,2)发布你得到的实际异常?另外,不要为每个项目打开连接,也不要创建副本
列表URL[索引:
@theourtheye-Done。谢谢!这就解决了它!:-)