Ryan Dooley
Ryan Dooley

Reputation: 254

Python Exception Handling with in a loop

An exception occurs when my program can't find the element its looking for, I want to log the event within the CSV, Display a message the error occurred and continue. I have successfully logged the event in the CSV and display the message, Then my program jumps out of the loop and stops. How can I instruct python to continue. Please check out my code.

sites = ['TCF00670','TCF00671','TCF00672','TCF00674','TCF00675','TCF00676','TCF00677']`

with open('list4.csv','wb') as f:
    writer = csv.writer(f)
    try:
        for s in sites:
            adrs = "http://turnpikeshoes.com/shop/" + str(s)
            driver = webdriver.PhantomJS()
            driver.get(adrs)
            time.sleep(5)
            LongDsc = driver.find_element_by_class_name("productLongDescription").text
            print "Working.." + str(s)
            writer.writerows([[LongDsc]])
    except:
        writer.writerows(['Error'])
        print ("Error Logged..")
        pass

    driver.quit()
print "Complete."

Upvotes: 3

Views: 14082

Answers (1)

Eli Korvigo
Eli Korvigo

Reputation: 10503

Just put the try/except block inside the loop. And there is no need in that pass statement at the end of the except block.

with open('list4.csv','wb') as f:
    writer = csv.writer(f)
    for s in sites:
        try:
            adrs = "http://turnpikeshoes.com/shop/" + str(s)
            driver = webdriver.PhantomJS()
            driver.get(adrs)
            time.sleep(5)
            LongDsc = driver.find_element_by_class_name("productLongDescription").text
            print "Working.." + str(s)
            writer.writerows([[LongDsc]])
        except:
            writer.writerows(['Error'])
            print ("Error Logged..")

NOTE It's generally a bad practice to use except without a particular exception class, e.g. you should do except Exception:...

Upvotes: 7

Related Questions