Does re.compile() or any given Python library call throw an exception?

后端 未结 2 1498
夕颜
夕颜 2020-12-18 19:59

I can\'t tell from the Python documentation whether the re.compile(x) function may throw an exception (assuming you pass in a string). I imagine there is something that coul

2条回答
  •  心在旅途
    2020-12-18 20:24

    Well, re.compile certainly may:

    >>> import re
    >>> re.compile('he(lo')
    Traceback (most recent call last):
      File "", line 1, in 
      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
    

    The documentation does support this, in a roundabout way - check the bottom of the "Module Contents" page for (brief) description of the error exception.

    Unfortunately, I don't have any answer to the general question. I suppose the documentation for the various modules varies in quality and thoroughness. If there were particular modules you were interested in, you might be able to decompile them (if written in Python) or even look at the source, if they're in the standard library.

提交回复
热议问题