返回顶部
首页 > 资讯 > 后端开发 > Python >tornado有TypeError("Unsupported timeout %r" % timeout)报错是怎么回事
  • 164
分享到

tornado有TypeError("Unsupported timeout %r" % timeout)报错是怎么回事

python错误处理TypeErrortornadotornado报错 2024-02-28 21:02:19 164人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

报错的原因这个错误是由于在python中使用了tornado时,设置的timeout参数不被支持。一般来说,timeout参数的值应该是一个整数或者是一个float,但是在这种情况下传入了一个不支持的值。可能是其他类型或者是一个不能被转换为

报错的原因

这个错误是由于在python中使用了tornado时,设置的timeout参数不被支持。一般来说,timeout参数的值应该是一个整数或者是一个float,但是在这种情况下传入了一个不支持的值。可能是其他类型或者是一个不能被转换为整数或float的值。

如何解决

要解决这个错误,需要保证传入timeout参数的值是一个整数或float。这可以通过调整代码或者配置文件来确保。你可以先检查传入timeout参数的值是否合法,如果不是整数或float,可以使用如int() 或float()函数将其转换为合法值。

在你使用了超时参数之前也可以检查是否超时参数是合法的,如果不是则设置一个默认值或者抛出一个异常。

使用例子

是的,下面是一个简单的例子:


import tornado.ioloop

def handle_timeout():
    print("timeout occurred")

def start_timeout(timeout):
    if not isinstance(timeout, (int,float)):
        raise ValueError("timeout must be a number")
    tornado.ioloop.IOLoop.current().call_later(timeout, handle_timeout)

try:
    start_timeout(10) # this will work
    start_timeout("10") # this will raise ValueError
except ValueError as e:
    print(str(e))

在这个例子中,我们检查传入的timeout参数是否为整数或者float,如果不是,就会抛出一个 ValueError 异常

另外还有一种方法就是使用默认值,例如


def start_timeout(timeout=10):
    if not isinstance(timeout, (int,float)):
        timeout = 10 
    tornado.ioloop.IOLoop.current().call_later(timeout, handle_timeout)

start_timeout() # this will use the default timeout of 10s

在这里,我们使用了一个默认值为10s,如果传入的timeout参数是非法的,我们就使用默认值。

--结束END--

本文标题: tornado有TypeError("Unsupported timeout %r" % timeout)报错是怎么回事

本文链接: https://lsjlt.com/news/569549.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作