测试数据源时,异常将我抛出jython上的循环

2024-09-29 19:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个脚本,使用AdminControl.testConnection测试所有集群的所有数据源。它工作得很好,直到我想显示它抛出的实际错误消息,其中有一个问题。当我想传递自定义消息时,循环工作,但当我想抛出实际消息时,循环不工作。有人曾经面对过这个问题或找到了解决方案吗

此代码工作正常,存在自定义错误:

listofClusters = AdminClusterManagement.listClusters()
for eachCluster in listOfClusters:
    eachCluster = eds.split('(')[0]
    print ""
    print 'Test %s DataSources' % (eachCluster)
    print ""
    cluster = AdminConfig.getid('/ServerCluster:' + eachCluster + '/')
    ds = AdminConfig.list("DataSource", cluster)
    for eds in ds.split('\n'):
        dsname = eds.split('(')[0]
        dsname = dsname[1:]
        try:
            print '%s on Cluster1: %s' % (dsname, AdminControl.testConnection(eds))
        except:
            print("Connection test failed on %s for: %s" % (eachCluster, dsname))

但是当我试图捕获错误并显示它时,代码只是在第一个错误发生后退出,而不是抛出错误然后继续检查循环中的下一个数据源

listofClusters = AdminClusterManagement.listClusters()
    for eachCluster in listOfClusters:
        eachCluster = eds.split('(')[0]
        print ""
        print 'Test %s DataSources' % (eachCluster)
        print ""
        cluster = AdminConfig.getid('/ServerCluster:' + eachCluster + '/')
        ds = AdminConfig.list("DataSource", cluster)
        for eds in ds.split('\n'):
            dsname = eds.split('(')[0]
            dsname = dsname[1:]
            try:
                print '%s on Cluster1: %s' % (dsname, AdminControl.testConnection(eds))
            except:
                print("Connection test failed on %s for: %s" % (eachCluster, dsname))
                type,val,tb = sys.exc_info()[1]
                print(typ)
                print(val)
                print(tb)

Tags: in消息foron错误dssplitcluster

热门问题