try:
float(self.entry_weight.get()) and int(self.entry_height.get())
self.get_bears()
except:
messagebox.showinfo("Number Error","Your weight and height must be a number!")
你好,当我在输入框中输入数字并单击关联的按钮时,此try / except语句似乎不起作用,我只收到消息框,说我的输入不是数字。我已使用打印语句来确保我正在测试正确的输入框。当我测试类型时,我可以按预期返回,但是可以肯定的是,如果这些字符串输入是数字,则tryexcept语句应该可以正常工作。任何帮助将非常感谢。
您的try / except块覆盖了太多区域。除了输入问题之外,它还捕获了get_bears
可能出错的所有内容。此外,and
短路,因此如果权重为0,则永远不会进行第二次检查。您可以使用两个try / except块覆盖所有内容
try:
# validate input
float(self.entry_weight.get())
int(self.entry_height.get())
except ValueError:
messagebox.showinfo("Number Error","Your weight and height must be a number!")
return
try:
self.get_bears()
except:
messagebox.showinfo("Unhandled Error","Unknown error in program")
# log it somewhere
import traceback
traceback.print_exc()
# likely want to exit() because program is highly busted