Bạn không nên kiểm tra cho một mã trạng thái sau khi bắt URLError
, kể từ khi ngoại lệ có thể được huy động trong trường hợp không có mã trạng thái HTTP có sẵn, ví dụ như khi bạn' tái nhận kết nối bị từ chối lỗi.
Sử dụng HTTPError
để kiểm tra các lỗi cụ thể HTTP, và sau đó sử dụng URLError
để kiểm tra các vấn đề khác:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
Tất nhiên, có thể bạn sẽ muốn làm một cái gì đó nhiều hơn thông minh hơn là chỉ in các mã lỗi, nhưng bạn hiểu ý rồi đấy.
Nguồn
2010-08-12 08:07:02
Lạ. Bạn có thể dán mã bạn sử dụng để mở url không? Đối tượng 'URLError' –