How to get back to the for loop after exception handling

后端 未结 3 1858
南笙
南笙 2021-01-30 22:39

I am ready to run this code but before I want to fix the exception handling:

for l in bios:
    OpenThisLink = url + l
    try:
        response = urllib2.urlope         


        
相关标签:
3条回答
  • 2021-01-30 23:14

    you are getting that error because when the exception is thrown the response variable doesn't exist. If you want to leave the code how you have it you will need to check that response exists before calling read

    if response:
        bio = response.read()
        ...
    

    having said that I agree with Mark that continue is a better suggestion than pass

    0 讨论(0)
  • 2021-01-30 23:15

    Try is actually way more powerful than that. You can use the else block here too:

    try:
        stuff
    except Exception:
        print "oh no a exception"
    else:
        print "oh yay no exception"
    finally:
        print "leaving the try block"
    
    0 讨论(0)
  • 2021-01-30 23:22

    Use continue instead of break.

    The statement pass is a no-op (meaning that it doesn't do anything). The program just continues to the next statement, which is why you get an error.

    break exits the loops and continues running from the next statement immediately after the loop. In this case, there are no more statements, which is why your program terminates.

    continue restarts the loop but with the next item. This is exactly what you want.

    0 讨论(0)
提交回复
热议问题