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?
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
.
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:
Also verursacht 1e4**100
einen ERANGE-Fehler (was zu PyExc_OverflowError
führt) und dann wird die höhere OverflowError
-Ausnahme ausgelöst.
Tags und Links python overflowexception errno