2
我正在運行一個程序從網上下載文件。我已經引入了一個異常處理urllib.error.HTTPError,但現在我不時得到更多的錯誤,我不知道如何捕獲:http.client.IncompleteRead。我只是將以下代碼添加到底部的代碼中?Python HTTP異常處理
except http.client.IncompleteRead:
我必須添加多少個例外以確保程序不會停止?我是否必須將它們全部添加到同一個Except語句或幾個Except語句中。
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.")
謝謝。如果異常是由於無法關閉文件或下載文件或其他不幸事件而會發生什麼情況?我應該嘗試關閉文件作爲緊跟在except語句之後的代碼的一部分嗎? – gciriani
@gciriani:你可以使用'finally'子句來幫助確保文件關閉,或者使用['with'語句](http://docs.python.org/2/reference/compound_stmts.html#the-with -statement)這是一個更好的方法。 –