> 백엔드 개발 > 파이썬 튜토리얼 > 토네이도가 TypeError(\'지원되지 않는 시간 초과 %r\' % 시간 초과) 오류를 보고하면 무슨 일이 벌어지고 있나요?

토네이도가 TypeError(\'지원되지 않는 시간 초과 %r\' % 시간 초과) 오류를 보고하면 무슨 일이 벌어지고 있나요?

WBOY
풀어 주다: 2024-03-01 11:20:03
앞으로
934명이 탐색했습니다.

토네이도가 TypeError(\지원되지 않는 시간 초과 %r\ % 시간 초과) 오류를 보고하면 무슨 일이 벌어지고 있나요?

오류의 원인

이 오류는 python에서 tornado를 사용할 때 설정된 시간 제한 매개 변수가 지원되지 않기 때문에 발생합니다. 일반적으로 timeout 매개 변수의 값은 정수 또는 부동 소수점이어야 하는데, 이 경우 지원되지 않는 값이 전달되었습니다. 정수 또는 부동 소수점으로 변환할 수 없는 다른 유형 또는 값일 수 있습니다.

해결 방법

이 오류를 해결하려면 전달된 시간 제한 매개 변수의 값이 정수 또는 부동 소수점인지 확인해야 합니다. 이는 코드나 구성 파일을 조정하여 보장할 수 있습니다. 먼저 timeout 매개변수에 전달된 값이 유효한지 확인할 수 있습니다. 정수 또는 부동 소수점이 아닌 경우 int() 또는 float()와 같은 함수를 사용하여 유효한 값으로 변환할 수 있습니다.

timeout 매개변수를 사용하기 전에 timeout 매개변수가 유효한지 여부도 확인할 수 있습니다. 그렇지 않은 경우 기본값을 설정하거나 예외를 발생시킵니다.

사용 예

예, 다음은 간단한 예입니다.

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))
로그인 후 복사

이 예에서는 전달된 시간 초과 매개변수가 정수인지 부동 소수점인지 확인합니다. 그렇지 않으면 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
로그인 후 복사
와 같은 기본값을 사용하는 것입니다.

여기에서는 기본값인 10초를 사용합니다. 전달된 시간 초과 매개변수가 잘못된 경우 기본값을 사용합니다.

위 내용은 토네이도가 TypeError(\'지원되지 않는 시간 초과 %r\' % 시간 초과) 오류를 보고하면 무슨 일이 벌어지고 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:lsjlt.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿