I'm running a program that downloads files from a web sit. I've introduced one exception handling urllib.error.HTTPError, but now I'm getting from time to time additional errors that I'm not sure how to capture: http.client.IncompleteRead. Do I just add the following to the code at the bottom?
except http.client.IncompleteRead:
How many exceptions do I have to add to make sure the program doesn't stop? And do I have to add them all in the same Except statement or in several Except statements.
try:
# Open a file object for the webpage
f = urllib.request.urlopen(imageURL)
# Open the local file where you will store the image
imageF = open('{0}{1}{2}{3}'.format(dirImages, imageName, imageNumber, extension), 'wb')
# Write the image to the local file
imageF.write(f.read())
# Clean up
imageF.close()
f.close()
except urllib.error.HTTPError: # The 'except' block executes if an HTTPError is thrown by the try block, then the program continues as usual.
print ("Image fetch failed.")
You can add individual except
clauses if you want to handle each exception type separately, or you could put them all in one:
except (urllib.error.HTTPError, http.client.IncompleteRead):
You can also add a generic clause that will catch anything not handled previously:
except Exception:
For more informative messages, you can print the actual exception that happens:
except Exception as x:
print(x)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With