为什么我只传递了一个参数就得到一个TypeError?

def divide(num1,num2):
    try:
        return num1/num2
    except TypeError:
        return "Please provide two integers or floats"
    except ZeroDivisionError:
        return "Please do not divide by zero"

解决方案:

如果你没有提供所有所需的参数,函数永远不会被输入,所以没有办法捕捉到这种情况 TypeError里面 的函数。

为了说明这一点,考虑一个立即出错的函数。

>>> def func(a, b, c):
...     raise Exception("inside the function")
...

现在让我们用所需的参数来调用它。

>>> func(1, 2, 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in func
Exception: inside the function

在这里,你可以从跟踪回放中看到in func),该函数被输入,并从那里抛出错误。然而,如果我们再次调用它而不输入参数。

>>> func()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: func() takes exactly 3 arguments (0 given)

请注意,回溯并不包括 in func,错误发生 之前 进入功能体。你只能抓住它 外面 的函数。

>>> try:
...     func()
... except TypeError:
...     print('oh no!')
...
oh no!

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在 react native 中从普通函数中获取上下文值?(没有使用Context或类组件)

2022-9-8 22:11:26

未分类

将计数器转化为最终数组

2022-9-8 22:11:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索