我知道float("foo")
可以引发一个ValueError
,所以我写了我的方法如下:
def cast_to_float(value: str) -> float:
try:
return float(value)
except ValueError as e:
# deal with it
然而,我刚刚意识到float()
也可以引发OverflowError
。所以我想知道是否还有其他类型的异常我没有捕捉到。我知道使用except Exception
是一种不好的做法。
如何找到float()
可以引发的所有异常类型?
我已经尝试了文档以及IDE的 “Go to Definition” 菜单,但我找不到引发异常的位置。
1条答案
按热度按时间iecba09b1#
至于内置函数,我们需要在其源代码中查找它们。也许最简单的方法是查找CPython的单元测试,它是用Python编写的。
这里是link。搜索
assertRaises
。顺便说一句,如果
value
被保证为str
,那么ValueError
似乎是唯一可能的错误。