Le titre de la question peut être un peu confus mais je ne sais pas vraiment comment le mieux le mot ... J'ai trouvé le morceau de code suivant qui télécharge un Web à partir du Web en utilisant la bibliothèque urllib2.l'urlib2.URLError et sa raison en python
import urllib2
def download(url):
try:
html = urllib2.urlopen(url).read()
except urllib2.URLError as e:
print 'Download error:', e.reason
html = None
return html
Maintenant, s'il arrive que e.code
est 404 alors e.reason
est simplement une chaîne vide qui signifie qu'il porte absolument aucune information sur ce qui a déclenché l'erreur, donc je ne comprends pas vraiment le point d'utiliser e.reason
ici. Il semble qu'il serait plus raisonnable d'imprimer e
à la place, mais même si je le change simplement print e
il va encore donner quelque chose de gênant: HTTP Error 404:
et le signe deux-points est suivi d'une chaîne vide ... Donc il me semble que le code mentionné ci-dessus est un peu maladroit en termes de gestion des exceptions. Est-ce vrai?
Oui, simplement 'imprimer e' serait meilleur. Plus habituel serait de ne pas capturer l'exception du tout, car il ne semble pas être manipulé. Quelle est la question, exactement? – wim
404 signifie que la ressource demandée n'a pas été trouvée. Mieux vaut «imprimer» pour plus de détails. – ichbinblau
@wim Eh bien, j'ai pris ce morceau de code d'un livre et j'étais un peu perplexe par la façon dont l'exception est traitée là-bas, donc je pensais que je manquais quelque chose ... – weeCoder