Bedeutung der Fehlernummern in Python-Ausnahmen

8

Nachdem ich nach einer dummen Berechnung Pythons OverflowError abgefangen habe, habe ich den args des Fehlers überprüft und festgestellt, dass es sich um ein Tupel handelt, das eine Ganzzahl als erste Koordinate enthält. Ich nehme an, das ist eine Art von Fehlernummer ( errno ). Ich konnte jedoch keine Dokumentation oder Referenz dafür finden.

Beispiel:

%Vor%

Weißt du was 34 in diesem Zusammenhang bedeutet? Kennen Sie andere mögliche Fehlernummern für diese Ausnahme?

    
Bach 09.04.2014, 07:31
quelle

1 Antwort

6

Es gibt ein Modul in der Standardbibliothek namens errno :

  

Dieses Modul stellt Standard-Errno-System-Symbole zur Verfügung. Der Wert   von jedem Symbol ist der entsprechende ganzzahlige Wert. Die Namen und   Beschreibungen sind von linux / include / errno.h entlehnt, was sein sollte   ziemlich all-inclusive.

/usr/include/linux/errno.h enthält /usr/include/asm/errno.h einschließlich /usr/include/asm-generic/errno-base.h .

%Vor%

Jetzt wissen wir, dass der Fehlercode 34 für ERANGE steht.

1e4**100 wird mit float_pow function von Objekt / floatobject.c . Teilquellcode dieser Funktion:

%Vor%

Also verursacht 1e4**100 einen ERANGE-Fehler (was zu PyExc_OverflowError führt) und dann wird die höhere OverflowError -Ausnahme ausgelöst.

    
vaultah 09.04.2014, 07:39
quelle

Tags und Links