Korrekter Weg, um zu versuchen / außer Python Requests Modul zu verwenden?
try:
r = requests.get(url, params={'s': thing})
except requests.ConnectionError, e:
print e #should I also sys.exit(1) after this?
Ist das richtig? Gibt es eine bessere Art und Weise zu strukturieren? Wird diese Abdeckung alle meine Basen?
InformationsquelleAutor der Frage John Smith | 2013-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf die Anforderungen Ausnahme docs. Kurz gesagt:
Ihre Frage zu beantworten, was Sie zeigen, wird nicht decken Sie alle Ihre Basen. Sie werden nur zu fangen Verbindung bezogene Fehler, nicht diejenigen, die die Zeit aus.
Was zu tun ist, wenn Sie fangen die Ausnahme ist, wirklich bis an das design Ihres script/Programm. Ist es akzeptabel, zu beenden? Können Sie gehen und versuchen Sie es erneut? Wenn der Fehler ist katastrophal, und Sie können nicht gehen, dann ja, ein Aufruf zu
sys.exit()
ist in Ordnung.Können Sie entweder fangen die base-Klasse exception, die alle Fälle behandeln:
Oder Sie kann fangen Sie separat und verschiedene Dinge tun.
Als Christian hingewiesen:
Beispiel:
Drucken:
InformationsquelleAutor der Antwort Jonathon Reinhart
Einen zusätzlichen Vorschlag zu explizit sein. Es scheint am besten zu gehen, von spezifischen zu Allgemeinen nach unten im Stapel der Fehler auf den gewünschten Fehler abgefangen werden, so dass die jeweilige nicht bekommen, maskiert durch den general.
vs
InformationsquelleAutor der Antwort jouell