Get Errno von Python Anfragen ConnectionError?

9

Ich fange und drucke Python Requests ConnectionErrors genau mit diesem:

%Vor%

Es werden Meldungen ausgegeben wie:

%Vor%

und

%Vor%

Und viele andere. Was ich frage mich ist, was ist die beste, Pythonic, wie errno, die in der Nachricht angezeigt wird? Ich hätte gerne ein zuverlässiges System, um die Probleme zu erfassen und dem Benutzer eine hilfreiche und relevante Fehlermeldung zu geben. Soweit ich das beurteilen kann, ist ConnectionError ein indirekter Abkömmling von BaseException, wobei keine neuen Eigenschaften oder Methoden hinzugefügt werden, die über das hinausgehen, was BaseException bietet. Ich zögere, Regex einfach zu benutzen, weil es mir scheint, dass ich das Risiko annehme, dass alle Fehlermeldungen in allen Lokalitäten auf dieselbe Weise formatiert sind.

    
ArtOfWarfare 14.10.2013, 22:40
quelle

1 Antwort

23

Ich denke, Sie können mit e.args[0].reason.errno darauf zugreifen.

Das ist wahrscheinlich irgendwo dokumentiert, aber normalerweise, wenn ich so etwas aufspüren muss, versuche ich es einfach an der Konsole und grabe ein wenig herum. (Ich benutze IPython, so dass es einfach ist, Tab-Inspection durchzuführen, aber wir versuchen es ohne).

Zuerst erzeugen wir einen Fehler mit

%Vor%

was uns den Fehler in e geben sollte:

%Vor%

Informationen sind normalerweise in args :

%Vor%

Wenn wir hineinschauen, sehen wir:

%Vor%

reason sieht ermutigend aus:

%Vor%     
DSM 14.10.2013, 22:53
quelle