17

re.compile(x) 関数が例外をスローする可能性があるかどうかは、Python のドキュメントからはわかりません (文字列を渡すと仮定します)。無効な正規表現と見なされるものがあると思います。より大きな問題は、特定の Python ライブラリ呼び出しが例外をスローする可能性があるかどうか、およびそれらが何であるかをどこで確認できるかということです。

4

2 に答える 2

12

まあ、re.compile確かに:

>>> 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

ドキュメントerrorはこれを迂回的にサポートしています -例外の(簡単な)説明については、「モジュールの内容」ページの下部を確認してください。

残念ながら、一般的な質問に対する答えはありません。さまざまなモジュールのドキュメントは、品質と完全性にばらつきがあると思います。興味のある特定のモジュールがある場合は、それらを逆コンパイル(Python で記述されている場合) したり、標準ライブラリにある場合はソースを確認したりすることもできます。

于 2008-09-12T01:42:38.357 に答える
7

発生するように宣言する必要がある例外がある Java とは異なり (また、発生させる必要のない例外もありますが、それは別の話です)、Python コードはいつでも例外を発生させる可能性があります。

組み込みの例外のリストがあり、通常、これらの例外がいつ発生する可能性があるかについての説明があります。どの程度の例外処理を行うか、また適切に処理するか、単にトレースバックで失敗するかは、あなた次第です。

于 2008-09-12T02:10:16.467 に答える