在bot.polling功能可按一个try-except块,不运行代码
问题描述:
在我的Python代码的其余部分,轮询功能处于try-except块在bot.polling功能可按一个try-except块,不运行代码
bot = telebot.TeleBot(TOKEN)
while True:
try:
status = "Conected"
bot.polling(none_stop=False, interval=1)
except:
status = "failure"
print status
#do something..
time.sleep(1)
但当bot.polling
执行,该脚本从不打印状态并且不运行代码的其余部分。
我尝试添加“block = True”bot.polling(none_stop=False, interval=1, block=True)
,但在这种情况下,轮询不会收到电报消息。
答
道歉,我的最后一个答案并不像以前那么清楚。
所以,当使用try /除了你会想确认你在While和Try:和Except下面有缩进(和Else,最后如果你也使用它们)。
接下来,您想要查找的操作在尝试或除了之外进行。所以,这是我会做的:
这将运行,并不断循环每秒一次。如果循环的状态成功,它将显示连接,否则它会打印“失败”,然后在一秒钟后再次尝试循环。如果它返回一个错误,它将打印它有错误。但是,如果遇到错误,它会循环回到True:loop的顶部。这就是为什么你没有得到一个打印,因为除了指令不包括打印。一旦发生异常,您的代码将返回顶部并再次尝试。
while True:
try:
status = "Connected"
bot.polling(none_stop=False, interval=1)
pass
except:
status = "failure"
print status
else:
print status
#do something..
time.sleep(1)
本教程对于启动和运行这些try catch循环非常有帮助。
https://docs.python.org/2/tutorial/errors.html
这里有一个尝试的例子,除了我使用效果:
token = 0
while token == 0:
print("Welcome to the back office.\nYou will need to log in to contine.")
sleep(1)
print("="*5 + " Please log in " +"="*5)
print(" ")
email = raw_input("Email: ")
print(" ")
password = getpass.getpass("Password: ")
authpayload = "grant_type=password&username=" + email + "&password=" + password
login = requests.post(url+'/token', data=authpayload) #testing
token = login.json()
try:
token = token["access_token"]
pass
except:
print(" ")
print("="*5 + " ERROR " +"="*5)
print(token)
print("Sorry please try logging in again.")
logging.info("user login failed " + str(token))
logging.info("user tried email: " + email)
token = 0
sleep(1)
else:
print(" ")
print("="*5 + " You're now logged in " +"="*5)
print(" ")
logging.info("user login succeeded")
logging.info("user email: " + email)
sleep(.5)
pass
就我而言,我是“尝试”荷兰国际集团,看看JSON响应与该对象关键“access_token”如果不是,那么我知道出了问题,我不让用户继续。然后将它们发送回顶端,因为在除了区域之外,我确保令牌被设置为0.意味着此循环将运行,直到我的程序收到访问令牌的值。
我真的希望这有助于!如果它解决了你的问题,请接受它!
你能解释一下吗? – Nivek
@Nivek我已经更新了我的答案,以便更详细地给出一个资源来协助try/except/else。希望这是更多你正在寻找。 – beerandsmiles
@Nivek再次更新了我在其中一个脚本中使用的Try Except Else循环的示例。 – beerandsmiles