2015-05-04 55 views
0

我有这两段代码:检查试异常IndexError在python

try: 
    error1=tree.xpath[...] 
    error2=tree.xpath[...] 
except IndexError: 
    print 'hello'     #piece 1 


try: 
    error3=tree.xpath[...] 
    error4=tree.xpath[...] 
except IndexError: 
    print 'hello'     #piece 2 

要看什么xpath pattern是,两件一个工作。例如,对于一些网站,第一部分工作正常(所以我必须评论第二部分)和其他一些网站第二部分工作正常(所以我必须评论第一部分)。

如何在我使用它们的所有网站的所有条件下混合使用这两件作品?

+0

你的代码有什么问题? – number5

+0

你能发表一个代码的例子吗?代码块除了变量名之外是相同的。 – cosmoscalibur

+0

有没有第一块和第二块工作正常的情况?如果是这样,你必须评论两者还是没有评论? – Soma

回答

0

可以嵌套例外:

try: 
    error1=tree.xpath[...] 
    error2=tree.xpath[...] 
    print "Method 1 succeed" 
except IndexError: 
    print "Method 1 failed, trying method 2" 
    try: 
     error3=tree.xpath[...] 
     error4=tree.xpath[...] 
     print "Method 2 succeed" 
    except IndexError: 
     print 'Both method failed' 
0

您可以通过引入新的变量,它保持一个检查,如果该命令成功使用相同的代码。

success = False 
try: 
    error1=tree.xpath[...] 
    error2=tree.xpath[...] 
    success = True 
except IndexError: 
    print 'hello'     #snippet 1 

if !success: 
    try: 
     error1=tree.xpath[...] 
     error2=tree.xpath[...] 
    except IndexError: 
     print 'hello'     #snippet 2