Maison > Article > développement back-end > Que se passe-t-il lorsque Tornado signale une erreur TypeError (\'Unsupported timeout %r\' % timeout) ?
Cette erreur est due au fait que lors de l'utilisation de tornado dans python, le paramètre de délai d'attente défini n'est pas pris en charge. Normalement, la valeur du paramètre timeout doit être un entier ou un flottant, mais dans ce cas, une valeur non prise en charge a été transmise. Il peut s'agir d'un autre type ou d'une valeur qui ne peut pas être convertie en entier ou en flottant.
Pour résoudre cette erreur, vous devez vous assurer que la valeur du paramètre timeout transmis est un entier ou un flottant. Cela peut être assuré en ajustant le code ou les fichiers de configuration. Vous pouvez d'abord vérifier si la valeur transmise dans le paramètre timeout est légale. S'il ne s'agit pas d'un entier ou d'un flottant, vous pouvez utiliser des fonctions telles que int() ou float() pour la convertir en valeur légale.
Avant d'utiliser le paramètre timeout, vous pouvez également vérifier si le paramètre timeout est légal. Sinon, définissez une valeur par défaut ou lancez une exception.
Oui, voici un exemple simple :
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))
Dans cet exemple, nous vérifions si le paramètre timeout transmis est un entier ou un flottant. Sinon, une exception ValueError sera levée.
Une autre façon consiste à utiliser la valeur par défaut, telle que
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.
Ici, nous utilisons une valeur par défaut de 10s. Si le paramètre de délai d'attente transmis est illégal, nous utilisons la valeur par défaut.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!