Hat re.compile () oder jeder Python gegeben Bibliotheksaufruf eine Ausnahme auslösen?
Frage
Ich kann nicht von der Python-Dokumentation sagen, ob die re.compile (x) Funktion eine Ausnahme auslösen kann (Sie in einem String übergeben vorausgesetzt). Ich stelle mir vor, es ist etwas, das ein ungültiger regulärer Ausdruck in Betracht gezogen werden könnte. Die größere Frage ist, wo ich finden gehen, wenn ein Anruf Python gegeben Bibliothek kann Ausnahme (n) werfen und was diese sind?
Lösung
Nun, re.compile
sicherlich kann:
>>> import re
>>> re.compile('he(lo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\re.py", line 180, in compile
return _compile(pattern, flags)
File "C:\Python25\lib\re.py", line 233, in _compile
raise error, v # invalid expression
sre_constants.error: unbalanced parenthesis
Die Dokumentation dies nicht unterstützt, auf Umwegen - überprüfen Sie die Unterseite der „Modulinhalt“ Seite für (kurze) Beschreibung der error
Ausnahme
Leider habe ich keine Antwort auf die allgemeine Frage. Ich nehme an, die Dokumentation für die verschiedenen Module in Qualität und Gründlichkeit variiert. Wenn es bestimmte Module waren Sie interessiert waren, könnte man a href <= „https://web.archive.org/web/20081004235506/http://www.depython.net/“ rel = "nofollow noreferrer der Lage sein, „> decompile sie (wenn in Python geschrieben) oder sogar an der Quelle schauen, wenn sie in der Standardbibliothek sind.
Andere Tipps
Im Gegensatz zu Java, wo gibt es Ausnahmen, die deklariert werden müssen angehoben werden (und einige, die müssen nicht sein, aber das ist eine andere Geschichte), jede Python-Code jede Ausnahme jederzeit erhöhen kann.
Es gibt eine Liste von eingebauten Ausnahmen , die in der Regel hat einige Beschreibung, wann könnten diese Ausnahmen angehoben werden. Es liegt an Ihnen, wie viel Ausnahmebehandlung werden Sie tun, und wenn Sie Sachen ordnungsgemäß behandelt, oder einfach nur mit einem Rückverfolgungs versagen.