python 如何找到float()引发的所有可能的异常

cetgtptt  于 2023-04-28  发布在  Python
关注(0)|答案(1)|浏览(109)

我知道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” 菜单,但我找不到引发异常的位置。

iecba09b

iecba09b1#

至于内置函数,我们需要在其源代码中查找它们。也许最简单的方法是查找CPython的单元测试,它是用Python编写的。
这里是link。搜索assertRaises
顺便说一句,如果value被保证为str,那么ValueError似乎是唯一可能的错误。

相关问题