我无法从Python文档中看出re.compile(x)函数是否可能抛出异常(假设您传入一个字符串).我想有些东西可以被认为是无效的正则表达式.更大的问题是,我在哪里可以找到给定的Python库调用是否会抛出异常以及它们是什么?
那么,re.compile
可以肯定地:
>>> 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
文档确实以迂回的方式支持这一点 - 检查"模块内容"页面的底部是否有(简要)描述error
异常.
不幸的是,我对这个一般性问题没有任何答案.我想各种模块的文档在质量和彻底性方面各不相同.如果有您感兴趣的特定模块,您可以对它们进行反编译(如果是用Python编写的),或者甚至查看源代码,如果它们在标准库中.
与Java不同的是,必须声明要引发的异常(有些不必是,但这是另一个故事),任何Python代码都可能随时引发任何异常.
有一个内置异常列表,通常有一些描述可能会引发这些异常的时间.由你来决定你将做多少异常处理,如果你将优雅地处理东西,或者只是追溯失败.