管理多个数据库,利用循环来连接数据库,但是其中一个数据库无法访问,程序就结束了。

2016-05-26 22:15:38 +08:00
 zyqf
def loading_config(): 
    try:
            ts = DBconfig.RUN_TIME
            while True:
                    i=0
                    while DBconfig.DBS[i]:
                            head = DBconfig.DBS[i][0]
                            print '-----HOST   :',head[:3],'------------------------'
                            dhost    = DBconfig.DBS[i][0]
                            dport    = DBconfig.DBS[i][1]
                            duser    = DBconfig.DBS[i][2]
                            dpass    = DBconfig.DBS[i][3]
                            ddb      = DBconfig.DBS[i][4]
                            create_mysql(dhost,dport,duser,dpass,ddb,head)
                            main_function(dhost,dport,duser,dpass,ddb,head)
                            print '-----US-time:',time.ctime(),'---'
                            i +=1
                    time.sleep(ts)
    except Exception,e:
        print 'loading_config error!',e

贴上代码那一刻,突然发现自己好蠢.....

已解决:

def loading_config(): 
    ts = DBconfig.RUN_TIME
    while True:
            i=0
            while DBconfig.DBS[i]:
                    head = DBconfig.DBS[i][0]
                    print '-----HOST   :',head[:3],'------------------------'
                    dhost    = DBconfig.DBS[i][0]
                    dport    = DBconfig.DBS[i][1]
                    duser    = DBconfig.DBS[i][2]
                    dpass    = DBconfig.DBS[i][3]
                    ddb      = DBconfig.DBS[i][4]
                    try:
                        create_mysql(dhost,dport,duser,dpass,ddb,head)
                        main_function(dhost,dport,duser,dpass,ddb,head)
                    except Exception,e:
                        print 'loading_config error'
                        print e
                    print '-----US-time:',time.ctime(),'---'
                    i +=1
            time.sleep(ts)

不过回到最初的代码,好像只要异常发生就不能继续循环了?无解吗....

2151 次点击
所在节点    Python
4 条回复
knightdf
2016-05-26 22:32:07 +08:00
catch and then continue
msg7086
2016-05-27 10:00:55 +08:00
你 catch 在最外层,当然会被你跳出循环了
kideny
2016-05-27 13:47:01 +08:00
这应该有很多种写法吧!
zyqf
2016-05-27 16:16:29 +08:00
@knightdf continue 写在 except 下会提示 no loop

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/281531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX